LingxinMeng 6 mesi fa
parent
commit
68808797a0

+ 14 - 1
src/package/entity/project.go → src/package/domain/project/project.go

@@ -1,4 +1,9 @@
-package entity
+package project
+
+import (
+	"encoding/json"
+	"errors"
+)
 
 type Project struct {
 	Env                string `json:"env"` // 环境,需要根据该字段判断用哪个oss // cicv 国汽平台 pji 朴津平台
@@ -108,3 +113,11 @@ type SensorOgt struct {
 	SensorForHTop    float64 `json:"sensor_fovVTop"`    // 垂直现场角顶
 	SensorForHBottom float64 `json:"sensor_fovVBottom"` // 垂直现场角底
 }
+
+func TaskToJson(task Task) (string, error) {
+	jsonData, err := json.Marshal(task)
+	if err != nil {
+		return "", errors.New("转json失败,错误信息为:" + err.Error())
+	}
+	return string(jsonData), nil
+}

+ 29 - 0
src/package/domain/task_cache/task_cache.go

@@ -0,0 +1,29 @@
+package task_cache
+
+import (
+	"dcl_dispatch_server/src/package/domain/project"
+	"encoding/json"
+	"errors"
+	"fmt"
+)
+
+type TaskCache struct {
+	UserId             string       `json:"userId"`
+	UserParallelism    int64        `json:"userParallelism"`
+	AlgorithmObjectKey string       `json:"algorithmObjectKey"`
+	EquipmentType      string       `json:"equipmentType"`
+	Env                string       `json:"env"`
+	Task               project.Task `json:"task"`
+}
+
+func JsonToTaskCache(jsonData string) (TaskCache, error) {
+	// 创建一个 Person 类型的变量
+	var taskCache TaskCache
+
+	// 使用 json.Unmarshal 解析 JSON 字符串到结构体
+	err := json.Unmarshal([]byte(jsonData), &taskCache)
+	if err != nil {
+		return TaskCache{}, errors.New("对象json " + jsonData + " 转对象失败错误信息为: " + fmt.Sprintf("%v", err))
+	}
+	return taskCache, nil
+}

+ 0 - 10
src/package/entity/task_cache.go

@@ -1,10 +0,0 @@
-package entity
-
-type TaskCache struct {
-	UserId             string `json:"userId"`
-	UserParallelism    int64  `json:"userParallelism"`
-	AlgorithmObjectKey string `json:"algorithmObjectKey"`
-	EquipmentType      string `json:"equipmentType"`
-	Env                string `json:"env"`
-	Task               Task   `json:"task"`
-}

+ 5 - 3
src/package/global/camera.go

@@ -1,10 +1,12 @@
 package global
 
-import "dcl_dispatch_server/src/package/entity"
+import (
+	"dcl_dispatch_server/src/package/domain/project"
+)
 
-var DefaultCameras = []entity.SensorCamera{
+var DefaultCameras = []project.SensorCamera{
 	{
-		Sensor: entity.Sensor{
+		Sensor: project.Sensor{
 			SensorName: "custom_camera",
 			SensorNear: 1.0,
 			SensorFar:  1500.0,

+ 2 - 2
src/package/handler/old_interface_adapter.go

@@ -2,10 +2,10 @@ package handler
 
 import (
 	"dcl_dispatch_server/src/package/domain"
+	"dcl_dispatch_server/src/package/domain/task_cache"
 	"dcl_dispatch_server/src/package/entity"
 	"dcl_dispatch_server/src/package/global"
 	"dcl_dispatch_server/src/package/infra"
-	"dcl_dispatch_server/src/package/service"
 	"dcl_dispatch_server/src/package/util"
 	"github.com/gin-gonic/gin"
 	"net/http"
@@ -41,7 +41,7 @@ func State(c *gin.Context) {
 			infra.GlobalLogger.Errorf("获取运行中的任务队列【%v】失败", global.KeyTaskQueueRunningCluster)
 		}
 		for _, json := range runningTaskCacheJsons {
-			cache, err := service.JsonToTaskCache(json)
+			cache, err := task_cache.JsonToTaskCache(json)
 			if err != nil {
 				infra.GlobalLogger.Error(err)
 			}

+ 3 - 2
src/package/handler/start_project.go

@@ -3,6 +3,7 @@ package handler
 import (
 	"bytes"
 	"dcl_dispatch_server/src/package/domain"
+	"dcl_dispatch_server/src/package/domain/project"
 	"dcl_dispatch_server/src/package/entity"
 	"dcl_dispatch_server/src/package/global"
 	"dcl_dispatch_server/src/package/infra"
@@ -120,7 +121,7 @@ import (
 
 func StartProject(c *gin.Context) {
 
-	projectStartParam := new(entity.Project)
+	projectStartParam := new(project.Project)
 	bodyBytes, err := io.ReadAll(c.Request.Body)
 	if err != nil {
 		infra.GlobalLogger.Error("读取请求体失败:", err)
@@ -171,7 +172,7 @@ func StartProject(c *gin.Context) {
 	c.JSON(http.StatusOK, entity.HttpResult{Status: true, Code: "2000", Message: "项目启动请求已被成功接收,等待调度处理。"})
 }
 
-func checkEquipmentType(equipmentType string, project entity.Project) bool {
+func checkEquipmentType(equipmentType string, project project.Project) bool {
 	/*
 		JIN_LONG_BA_SHI // "金龙中巴"
 		    PEI_SONG_JI_QI_REN // "智能配送机器人",

+ 7 - 29
src/package/service/run_task.go

@@ -2,12 +2,11 @@ package service
 
 import (
 	"dcl_dispatch_server/src/package/domain"
-	"dcl_dispatch_server/src/package/entity"
+	"dcl_dispatch_server/src/package/domain/project"
+	"dcl_dispatch_server/src/package/domain/task_cache"
 	"dcl_dispatch_server/src/package/global"
 	"dcl_dispatch_server/src/package/infra"
 	"dcl_dispatch_server/src/package/util"
-	"encoding/json"
-	"errors"
 	"fmt"
 	"path/filepath"
 	"strconv"
@@ -36,7 +35,7 @@ func RunWaitingUser() {
 		}
 
 		for _, taskCacheJson := range taskCacheJsons {
-			taskCache, err := JsonToTaskCache(taskCacheJson)
+			taskCache, err := task_cache.JsonToTaskCache(taskCacheJson)
 			if err != nil {
 				infra.GlobalLogger.Error(err)
 				continue
@@ -48,7 +47,7 @@ func RunWaitingUser() {
 			task := taskCache.Task
 			// 1 判断用户并行度是否有剩余,有剩余则加入集群等待队列,并从用户等待队列中拿出,没有剩余则不需要改动
 			if domain.CanRunUser(userId, userParallelism) { // 可以运行
-				err = domain.AddWaitingCluster(&entity.Project{
+				err = domain.AddWaitingCluster(&project.Project{
 					UserId:             userId,
 					Parallelism:        userParallelism,
 					AlgorithmObjectKey: algorithmObjectKey,
@@ -83,7 +82,7 @@ func RunWaitingCluster() {
 			global.GpuNodeListMutex.Unlock()
 			continue
 		}
-		firstTaskCache := entity.TaskCache{}
+		firstTaskCache := task_cache.TaskCache{}
 		algorithmTarName := ""
 		algorithmTarPath := ""
 		algorithmImageName := ""
@@ -108,7 +107,7 @@ func RunWaitingCluster() {
 					global.GpuNodeListMutex.Unlock()
 					continue
 				}
-				firstTaskCache, err = JsonToTaskCache(firstTaskCacheJson)
+				firstTaskCache, err = task_cache.JsonToTaskCache(firstTaskCacheJson)
 				if err != nil {
 					infra.GlobalLogger.Error(err)
 					global.GpuNodeListMutex.Unlock()
@@ -207,12 +206,11 @@ func RunWaitingCluster() {
 		// --------------- 发送 kafka 消息(获取偏移量和分区) ---------------
 		// 获取任务消息转json
 		firstTaskCache.Task.Vehicle.Sensors.Camera = global.DefaultCameras
-		taskJson, err := TaskToJson(firstTaskCache.Task)
+		taskJson, err := project.TaskToJson(firstTaskCache.Task)
 		if err != nil {
 			infra.GlobalLogger.Error(err)
 			continue
 		}
-
 		// ------- 发送 -------
 		topic := projectId
 		// 创建一个Message,并指定分区为0
@@ -340,23 +338,3 @@ func RunWaitingCluster() {
 
 	}
 }
-
-func JsonToTaskCache(jsonData string) (entity.TaskCache, error) {
-	// 创建一个 Person 类型的变量
-	var taskCache entity.TaskCache
-
-	// 使用 json.Unmarshal 解析 JSON 字符串到结构体
-	err := json.Unmarshal([]byte(jsonData), &taskCache)
-	if err != nil {
-		return entity.TaskCache{}, errors.New("对象json " + jsonData + " 转对象失败错误信息为: " + fmt.Sprintf("%v", err))
-	}
-	return taskCache, nil
-}
-
-func TaskToJson(task entity.Task) (string, error) {
-	jsonData, err := json.Marshal(task)
-	if err != nil {
-		return "", errors.New("转json失败,错误信息为:" + err.Error())
-	}
-	return string(jsonData), nil
-}