Ver código fonte

项目结构修改

LingxinMeng 2 anos atrás
pai
commit
2d8300ed0c
11 arquivos alterados com 25 adições e 26 exclusões
  1. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/application/service/AlgorithmService.java
  2. 8 7
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/application/service/ProjectService.java
  3. 3 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/application/service/TaskService.java
  4. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/domain/service/ProjectDomainService.java
  5. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/domain/service/TaskDomainService.java
  6. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/persistence/git/GitUtil.java
  7. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/persistence/kafka/KafkaUtil.java
  8. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/persistence/kubernetes/KubernetesUtil.java
  9. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/persistence/minio/MinioUtil.java
  10. 1 5
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/persistence/redis/RedisUtil.java
  11. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/scheduler/ProjectScheduler.java

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/application/service/AlgorithmService.java

@@ -2,7 +2,7 @@ package com.css.simulation.resource.scheduler.application.service;
 
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.util.FileUtil;
-import com.css.simulation.resource.scheduler.infrastructure.util.MinioUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.minio.MinioUtil;
 import io.minio.MinioClient;
 import lombok.SneakyThrows;
 import org.springframework.beans.factory.annotation.Value;

+ 8 - 7
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/application/service/ProjectService.java

@@ -16,10 +16,10 @@ import com.css.simulation.resource.scheduler.infrastructure.configuration.minio.
 import com.css.simulation.resource.scheduler.infrastructure.entity.*;
 import com.css.simulation.resource.scheduler.infrastructure.persistence.mysql.mapper.*;
 import com.css.simulation.resource.scheduler.infrastructure.persistence.redis.CustomRedisClient;
-import com.css.simulation.resource.scheduler.infrastructure.util.KafkaUtil;
-import com.css.simulation.resource.scheduler.infrastructure.util.GitUtil;
-import com.css.simulation.resource.scheduler.infrastructure.util.MinioUtil;
-import com.css.simulation.resource.scheduler.infrastructure.util.RedisUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.kafka.KafkaUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.git.GitUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.minio.MinioUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.redis.RedisUtil;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.minio.MinioClient;
 import lombok.SneakyThrows;
@@ -120,7 +120,10 @@ public class ProjectService {
 
     @Async("pool1")
     public void runProject(ProjectMessageModel projectMessageModel){
+        //1 创建任务文件并固定场景数据
         createTaskAndFixData(projectMessageModel);
+        //2 校验证书和并行度
+        checkIfCanRun(projectMessageModel);
     }
 
     /**
@@ -308,8 +311,6 @@ public class ProjectService {
                 log.info("项目 " + projectId + " 共有 " + taskList.size() + " 个任务,已保存到数据库");
             }
 
-            //* -------------------------------- 4 开始排队 --------------------------------
-            cacheProject(projectMessageModel);
         } catch (Exception e) {
             log.error("项目报错。", e);
             stopProject(projectId, projectType, e.getMessage());
@@ -325,7 +326,7 @@ public class ProjectService {
      * @param projectMessageModel 项目启动消息
      */
     @SneakyThrows
-    public void cacheProject(ProjectMessageModel projectMessageModel) {
+    public void checkIfCanRun(ProjectMessageModel projectMessageModel) {
         log.debug("判断用户是否拥有可分配资源:" + projectMessageModel);
         //1 读取 kafka 的 project 信息
         final String modelType = projectMessageModel.getModelType();

+ 3 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/application/service/TaskService.java

@@ -7,12 +7,14 @@ import com.css.simulation.resource.scheduler.domain.service.ProjectDomainService
 import com.css.simulation.resource.scheduler.domain.service.TaskDomainService;
 import com.css.simulation.resource.scheduler.infrastructure.configuration.custom.CustomConfiguration;
 import com.css.simulation.resource.scheduler.infrastructure.configuration.kubernetes.KubernetesConfiguration;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.kubernetes.KubernetesUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.minio.MinioUtil;
 import com.css.simulation.resource.scheduler.infrastructure.persistence.redis.CustomRedisClient;
 import com.css.simulation.resource.scheduler.infrastructure.entity.PrefixEntity;
 import com.css.simulation.resource.scheduler.infrastructure.entity.ProjectEntity;
 import com.css.simulation.resource.scheduler.infrastructure.entity.TaskEntity;
 import com.css.simulation.resource.scheduler.infrastructure.persistence.mysql.mapper.TaskMapper;
-import com.css.simulation.resource.scheduler.infrastructure.util.*;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.redis.RedisUtil;
 import io.kubernetes.client.openapi.ApiClient;
 import io.minio.MinioClient;
 import lombok.extern.slf4j.Slf4j;

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/domain/service/ProjectDomainService.java

@@ -15,8 +15,8 @@ import com.css.simulation.resource.scheduler.infrastructure.persistence.mysql.ma
 import com.css.simulation.resource.scheduler.infrastructure.persistence.mysql.mapper.ManualProjectMapper;
 import com.css.simulation.resource.scheduler.infrastructure.persistence.mysql.mapper.UserMapper;
 import com.css.simulation.resource.scheduler.infrastructure.persistence.redis.CustomRedisClient;
-import com.css.simulation.resource.scheduler.infrastructure.util.KubernetesUtil;
-import com.css.simulation.resource.scheduler.infrastructure.util.RedisUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.kubernetes.KubernetesUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.redis.RedisUtil;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.kubernetes.client.openapi.ApiClient;
@@ -148,7 +148,7 @@ public class ProjectDomainService {
         log.info("删除上一个 pod:projectId={},nodeName={},lastPodName={}", projectId, nodeName, lastPodName);
         String cpuOrderString = stringRedisTemplate.opsForValue().get("project:" + projectId + ":pod:" + lastPodName + ":cpu");
         deletePod(lastPodName);
-        RedisUtil.deleteByKey(stringRedisTemplate, "project:" + projectId + ":pod:" + lastPodName + ":cpu");
+        customRedisClient.delete("project:" + projectId + ":pod:" + lastPodName + ":cpu");
         //2 获取新的 yaml 信息
         final Set<String> yamlPathCacheKeySet = RedisUtil.getKeySetByPrefix(stringRedisTemplate, "project:" + projectId + ":node:" + nodeName + ":yaml");
         if (CollectionUtil.isEmpty(yamlPathCacheKeySet)) {

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/domain/service/TaskDomainService.java

@@ -6,9 +6,9 @@ import com.css.simulation.resource.scheduler.infrastructure.configuration.custom
 import com.css.simulation.resource.scheduler.infrastructure.entity.*;
 import com.css.simulation.resource.scheduler.infrastructure.persistence.mysql.mapper.*;
 import com.css.simulation.resource.scheduler.infrastructure.repository.TaskIndexRepository;
-import com.css.simulation.resource.scheduler.infrastructure.util.KafkaUtil;
-import com.css.simulation.resource.scheduler.infrastructure.util.MinioUtil;
-import com.css.simulation.resource.scheduler.infrastructure.util.RedisUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.kafka.KafkaUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.minio.MinioUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.redis.RedisUtil;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.minio.MinioClient;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/util/GitUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/persistence/git/GitUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.infrastructure.util;
+package com.css.simulation.resource.scheduler.infrastructure.persistence.git;
 
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/util/KafkaUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/persistence/kafka/KafkaUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.infrastructure.util;
+package com.css.simulation.resource.scheduler.infrastructure.persistence.kafka;
 
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/util/KubernetesUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/persistence/kubernetes/KubernetesUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.infrastructure.util;
+package com.css.simulation.resource.scheduler.infrastructure.persistence.kubernetes;
 
 import api.common.util.OsUtil;
 import io.kubernetes.client.openapi.ApiClient;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/util/MinioUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/persistence/minio/MinioUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.infrastructure.util;
+package com.css.simulation.resource.scheduler.infrastructure.persistence.minio;
 
 import io.minio.*;
 import io.minio.errors.*;

+ 1 - 5
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/util/RedisUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/persistence/redis/RedisUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.infrastructure.util;
+package com.css.simulation.resource.scheduler.infrastructure.persistence.redis;
 
 import api.common.util.CollectionUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -11,10 +11,6 @@ import java.util.Set;
 public class RedisUtil {
 
 
-    public static void deleteByKey(StringRedisTemplate stringRedisTemplate, String key) {
-        stringRedisTemplate.delete(key);
-    }
-
     public static void deleteByKeyCollection(StringRedisTemplate stringRedisTemplate, Collection<String> keyCollection) {
         stringRedisTemplate.delete(keyCollection);
     }

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/scheduler/ProjectScheduler.java

@@ -5,7 +5,7 @@ import api.common.util.CollectionUtil;
 import api.common.util.JsonUtil;
 import com.css.simulation.resource.scheduler.application.service.ProjectService;
 import com.css.simulation.resource.scheduler.domain.service.ProjectDomainService;
-import com.css.simulation.resource.scheduler.infrastructure.util.RedisUtil;
+import com.css.simulation.resource.scheduler.infrastructure.persistence.redis.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -34,7 +34,7 @@ public class ProjectScheduler {
             log.info("尝试启动等待中的项目:" + projectMessageKeys);
             for (String projectMessageKey : projectMessageKeys) {
                 final String projectMessage = RedisUtil.getStringByKey(stringRedisTemplate, projectMessageKey);
-                projectService.cacheProject(JsonUtil.jsonToBean(projectMessage, ProjectMessageModel.class));
+                projectService.checkIfCanRun(JsonUtil.jsonToBean(projectMessage, ProjectMessageModel.class));
             }
         }
     }