root 2 年之前
父节点
当前提交
0617f23bf4

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/esmini/EsminiConfiguration.java

@@ -1,6 +1,6 @@
 package com.css.simulation.resource.scheduler.configuration.esmini;
 
-import com.css.simulation.resource.scheduler.entity.KubernetesNodeEntity;
+import com.css.simulation.resource.scheduler.entity.EsminiNodeEntity;
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
@@ -11,5 +11,5 @@ import java.util.List;
 @Configuration
 @ConfigurationProperties(prefix = "esmini")
 public class EsminiConfiguration {
-    private List<KubernetesNodeEntity> nodeList;
+    private List<EsminiNodeEntity> nodeList;
 }

+ 3 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/kubernetes/KubernetesConfiguration.java

@@ -5,13 +5,13 @@ import io.kubernetes.client.openapi.ApiClient;
 import io.kubernetes.client.util.ClientBuilder;
 import io.kubernetes.client.util.KubeConfig;
 import lombok.Data;
+import lombok.SneakyThrows;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 import java.io.File;
 import java.io.FileReader;
-import java.io.IOException;
 import java.util.List;
 
 @Configuration
@@ -32,7 +32,8 @@ public class KubernetesConfiguration {
     private List<KubernetesNodeEntity> nodeList;
 
     @Bean
-    public ApiClient apiClient() throws IOException {
+    @SneakyThrows
+    public ApiClient apiClient() {
 //        File config = ResourceUtils.getFile("classpath:kubernetes/config");  // 开发环境可用,生产环境不行,无法从jar 包读取
 //        File config = new File("D:\\idea-project\\simulation-cloud\\simulation-resource-scheduler\\src\\main\\resources\\kubernetes\\config");  //windows
         File config = new File("/root/.kube/config");   //linux

+ 29 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/EsminiNodeEntity.java

@@ -0,0 +1,29 @@
+package com.css.simulation.resource.scheduler.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EsminiNodeEntity implements Cloneable {
+    private String name;
+    private Integer maxParallelism;
+//    private String hostname;
+//    private String username;
+//    private String password;
+
+
+    @Override
+    public EsminiNodeEntity clone() {
+        try {
+            // TODO: copy mutable state here, so the clone can't change the internals of the original
+            return (EsminiNodeEntity) super.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new AssertionError();
+        }
+    }
+}

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/KubernetesNodeEntity.java

@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class KubernetesNodeEntity implements Cloneable{
+public class KubernetesNodeEntity implements Cloneable {
     private String name;
     private Integer maxParallelism;
 //    private String hostname;

+ 6 - 5
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/manager/TaskManager.java

@@ -6,7 +6,6 @@ import com.css.simulation.resource.scheduler.configuration.feign.VideoFeignClien
 import com.css.simulation.resource.scheduler.configuration.kubernetes.KubernetesConfiguration;
 import com.css.simulation.resource.scheduler.entity.*;
 import com.css.simulation.resource.scheduler.mapper.*;
-import com.css.simulation.resource.scheduler.resource.TaskLock;
 import com.css.simulation.resource.scheduler.util.*;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -83,8 +82,6 @@ public class TaskManager {
     @Resource
     private SqlSessionFactory sqlSessionFactory;
     @Resource
-    private TaskLock taskLock;
-    @Resource
     private KubernetesConfiguration kubernetesConfiguration;
     @Resource
     private ApiClient apiClient;
@@ -181,7 +178,7 @@ public class TaskManager {
      * @param userId 项目创建用户的 id
      */
     @SneakyThrows
-    public void score(String userId, String projectId, String projectType, ClientSession session) {
+    public void score(String userId, String projectId, String projectType) {
         // -------------------------------- 打分 --------------------------------
         ProjectEntity projectEntity = null;
         if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
@@ -189,11 +186,15 @@ public class TaskManager {
         } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
             projectEntity = autoSubProjectMapper.selectById(projectId);
         }
+        if (projectEntity == null) {
+            log.error("不存在项目 {}" + projectId);
+            return;
+        }
         String packageId = projectEntity.getScenePackageId();  // 场景测试包 id,指标的rootId
         TimeUnit.SECONDS.sleep(10); // 先等一下数据库更新
         List<TaskEntity> taskList = taskMapper.selectTaskListByProjectId(projectId);  // 所有任务信息
         if (CollectionUtil.isEmpty(taskList)) {
-            log.error("项目 " + projectId + " 下没有查询到任务!");
+            log.error("项目 {} 下没有查询到任务!", projectId);
             return;
         }
         indexMapper.deleteFirstByProjectId(projectId);

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

@@ -60,7 +60,7 @@ public class TaskService {
         log.info("项目 " + projectId + " 准备打分。");
         taskManager.prepareScore(redisPrefix.getProjectRunningKey());
         //3 打分
-        taskManager.score(userId, projectId, projectType, clientSession);
+        taskManager.score(userId, projectId, projectType);
         //4 调用 server 的接口,计算评价等级
         taskManager.evaluationLevel(projectId);
         //5 结束