root 2 years ago
parent
commit
b98800916c

+ 1 - 1
api-common/src/main/java/api/common/pojo/constants/DictConstants.java

@@ -69,7 +69,7 @@ public class DictConstants {
     public static final String PROJECT_RUNNING = "20"; // 项目执行状态,执行中
     public static final String PROJECT_COMPLETED = "30"; // 项目执行状态,已完成
     public static final String PROJECT_TERMINATED = "40"; // 项目执行状态,已终止
-    public static final String PROJECT_ERROR = "50"; // 项目执行状态,执行出错
+    public static final String PROJECT_TERMINATING = "50"; // 项目执行状态,执行出错
 
 
     public static final String TASK_PENDING = "Pending"; // 任务执行状态,待执行

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/manager/TaskManager.java

@@ -527,7 +527,7 @@ public class TaskManager {
 
         // 删除 redis 中的 项目运行信息 键值对
         RedisUtil.deleteByPrefix(stringRedisTemplate, redisPrefix.getProjectRunningKey());
-        RedisUtil.deleteByPrefix(stringRedisTemplate, "project:" + projectId + ":package:");
+        RedisUtil.deleteByPrefix(stringRedisTemplate, "project:" + projectId);
         // 删除剩余 yaml
         projectUtil.deleteYamlByProjectId(projectId);
         if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {

+ 10 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/ProjectService.java

@@ -7,10 +7,7 @@ import com.css.simulation.resource.scheduler.common.configuration.docker.DockerC
 import com.css.simulation.resource.scheduler.common.configuration.git.GitConfiguration;
 import com.css.simulation.resource.scheduler.common.configuration.kubernetes.KubernetesConfiguration;
 import com.css.simulation.resource.scheduler.common.util.*;
-import com.css.simulation.resource.scheduler.dao.mapper.AlgorithmMapper;
-import com.css.simulation.resource.scheduler.dao.mapper.IndexTemplateMapper;
-import com.css.simulation.resource.scheduler.dao.mapper.SceneMapper;
-import com.css.simulation.resource.scheduler.dao.mapper.TaskMapper;
+import com.css.simulation.resource.scheduler.dao.mapper.*;
 import com.css.simulation.resource.scheduler.dao.manager.ProjectManager;
 import com.css.simulation.resource.scheduler.dao.entity.AlgorithmPO;
 import com.css.simulation.resource.scheduler.dao.entity.IndexTemplatePO;
@@ -100,6 +97,10 @@ public class ProjectService {
     private GitConfiguration gitConfiguration;
     @Resource
     private ProjectManager projectManager;
+    @Resource
+    private ManualProjectMapper manualProjectMapper;
+    @Resource
+    private AutoSubProjectMapper autoSubProjectMapper;
 
 
     // -------------------------------- Comment --------------------------------
@@ -335,6 +336,11 @@ public class ProjectService {
         MinioUtil.rmR(minioClient, bucketName, projectResultPathOfMinio + projectId + "/");
 
         log.info("stopProject() 项目 " + projectId + " 终止成功!");
+        if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
+            manualProjectMapper.updateProjectState(projectId, DictConstants.PROJECT_TERMINATED, TimeUtil.getNowForMysql());
+        } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
+            autoSubProjectMapper.updateProjectState(projectId, DictConstants.PROJECT_TERMINATED, TimeUtil.getNowForMysql());
+        }
     }
 
 

+ 6 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/web/consumer/ProjectConsumer.java

@@ -608,8 +608,14 @@ public class ProjectConsumer {
         String json = stopRecord.value();
         ObjectMapper objectMapper = new ObjectMapper();
         JsonNode jsonNode = objectMapper.readTree(json);
+        // 将项目状态修改为终止中
         String projectId = jsonNode.path("projectId").asText();
         String type = jsonNode.path("type").asText();
+        if (DictConstants.PROJECT_TYPE_MANUAL.equals(type)) {
+            manualProjectMapper.updateProjectState(projectId, DictConstants.PROJECT_TERMINATING, TimeUtil.getNowForMysql());
+        } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(type)) {
+            autoSubProjectMapper.updateProjectState(projectId, DictConstants.PROJECT_TERMINATING, TimeUtil.getNowForMysql());
+        }
         projectService.stopProject(projectId, type);
     }