|
@@ -1,4 +1,4 @@
|
|
|
-package domain
|
|
|
+package redis
|
|
|
|
|
|
import (
|
|
|
"dcl_dispatch_server/src/package/domain/project"
|
|
@@ -6,9 +6,7 @@ import (
|
|
|
"dcl_dispatch_server/src/package/global"
|
|
|
"dcl_dispatch_server/src/package/infra"
|
|
|
"dcl_dispatch_server/src/package/util"
|
|
|
- "encoding/json"
|
|
|
"errors"
|
|
|
- "fmt"
|
|
|
)
|
|
|
|
|
|
func CanRunUser(userId string, userParallelism int64) bool {
|
|
@@ -33,7 +31,7 @@ func CanRunCluster() (bool, infra.GpuNode, error) {
|
|
|
var can bool
|
|
|
maxParallelism = 0
|
|
|
for _, gpuNodeJson := range gpuNodeJsons {
|
|
|
- node, err := JsonToGpuNode(gpuNodeJson)
|
|
|
+ node, err := infra.JsonToGpuNode(gpuNodeJson)
|
|
|
if err != nil {
|
|
|
return false, infra.GpuNode{}, err
|
|
|
}
|
|
@@ -124,10 +122,10 @@ func AddRunningCluster(taskCache task_cache.TaskCache, nodeName string) error {
|
|
|
global.ParallelismMutex.Lock()
|
|
|
gpuNodeJsons, _ := infra.GlobalRedisClient.LRange(global.KeyGpuNodeList, 0, -1).Result()
|
|
|
for i, gpuNodeJson := range gpuNodeJsons {
|
|
|
- node, _ := JsonToGpuNode(gpuNodeJson)
|
|
|
+ node, _ := infra.JsonToGpuNode(gpuNodeJson)
|
|
|
if node.Hostname == nodeName {
|
|
|
node.Parallelism--
|
|
|
- nodeJson, _ := GpuNodeToJson(node)
|
|
|
+ nodeJson, _ := infra.GpuNodeToJson(node)
|
|
|
_, _ = infra.GlobalRedisClient.LSet(global.KeyGpuNodeList, int64(i), nodeJson).Result()
|
|
|
infra.GlobalLogger.Infof("节点 %v 并行度减一后剩余并行度为 %v。", node.Hostname, node.Parallelism)
|
|
|
}
|
|
@@ -135,23 +133,3 @@ func AddRunningCluster(taskCache task_cache.TaskCache, nodeName string) error {
|
|
|
global.ParallelismMutex.Unlock()
|
|
|
return nil
|
|
|
}
|
|
|
-
|
|
|
-func JsonToGpuNode(jsonData string) (infra.GpuNode, error) {
|
|
|
- // 创建一个 Person 类型的变量
|
|
|
- var taskCache infra.GpuNode
|
|
|
-
|
|
|
- // 使用 json.Unmarshal 解析 JSON 字符串到结构体
|
|
|
- err := json.Unmarshal([]byte(jsonData), &taskCache)
|
|
|
- if err != nil {
|
|
|
- return infra.GpuNode{}, errors.New("对象json " + jsonData + " 转对象失败错误信息为: " + fmt.Sprintf("%v", err))
|
|
|
- }
|
|
|
- return taskCache, nil
|
|
|
-}
|
|
|
-
|
|
|
-func GpuNodeToJson(gpuNode infra.GpuNode) (string, error) {
|
|
|
- jsonData, err := json.MarshalIndent(gpuNode, "", " ")
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- return string(jsonData), nil
|
|
|
-}
|