瀏覽代碼

获取 k8s 可用节点 bug

martin 2 年之前
父節點
當前提交
f2f91ccd48

+ 2 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ProjectConsumer.java

@@ -3,6 +3,7 @@ package com.css.simulation.resource.scheduler.consumer;
 
 import api.common.pojo.constants.DictConstants;
 import api.common.pojo.dto.ProjectMessageDTO;
+import api.common.util.CollectionUtil;
 import api.common.util.JsonUtil;
 import api.common.util.StringUtil;
 import com.css.simulation.resource.scheduler.mapper.*;
@@ -148,7 +149,7 @@ public class ProjectConsumer {
         int parallelism = projectMessageDTO.getParallelism();  // 期望并行度
         //1 获取所有节点的剩余可用并行度
         Map<String, Integer> nodeMap = projectUtil.getNodeMapToUse(parallelism);
-        if (nodeMap.size() == 0) {
+        if (CollectionUtil.isEmpty(nodeMap)) {
             return;
         }
         //2 计算实际可用并行度

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

@@ -159,7 +159,7 @@ public class ProjectScheduler {
 
         //1 获取所有节点的剩余可用并行度
         Map<String, Integer> nodeMap = projectUtil.getNodeMapToUse(parallelism);
-        if (nodeMap.size() == 0) {
+        if (CollectionUtil.isEmpty(nodeMap)) {
             return;
         }
         //2 计算实际可用并行度

+ 15 - 15
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/ProjectUtil.java

@@ -86,8 +86,6 @@ public class ProjectUtil {
     }
 
 
-
-
     /**
      * 根据并行度获取用于执行的节点列表
      * 根据剩余可用并行度降序排序
@@ -148,13 +146,12 @@ public class ProjectUtil {
                 restParallelism = Integer.parseInt(restParallelismString);
                 kubernetesNodeTO.setMaxParallelism(restParallelism);
             }
-            resultNodeMap.put(nodeName,restParallelism);
+            resultNodeMap.put(nodeName, restParallelism);
         }
         return resultNodeMap;
     }
 
 
-
     /**
      * 根据并行度获取用于执行的节点列表
      * 根据剩余可用并行度降序排序
@@ -183,19 +180,22 @@ public class ProjectUtil {
                 resultNodeMap.put(name, 0);
             }
         }
-
-        for (int i = 0; i < parallelism; i++) {
-            // 每次降序排序都取剩余并行度最大的一个。
-            restNodeList.sort((o1, o2) -> o2.getMaxParallelism() - o1.getMaxParallelism());
-            KubernetesNodeTO tempNode = restNodeList.get(0);
-            String tempNodeName = tempNode.getName();
-            int tempParallelism = tempNode.getMaxParallelism();
-            if (tempParallelism > 0) {
-                tempNode.setMaxParallelism(tempParallelism - 1);
-                resultNodeMap.put(tempNodeName, resultNodeMap.get(tempNodeName) + 1);
+        if (CollectionUtil.isEmpty(restNodeList)) {
+            return null;
+        } else {
+            for (int i = 0; i < parallelism; i++) {
+                // 每次降序排序都取剩余并行度最大的一个。
+                restNodeList.sort((o1, o2) -> o2.getMaxParallelism() - o1.getMaxParallelism());
+                KubernetesNodeTO tempNode = restNodeList.get(0);
+                String tempNodeName = tempNode.getName();
+                int tempParallelism = tempNode.getMaxParallelism();
+                if (tempParallelism > 0) {
+                    tempNode.setMaxParallelism(tempParallelism - 1);
+                    resultNodeMap.put(tempNodeName, resultNodeMap.get(tempNodeName) + 1);
+                }
             }
+            return resultNodeMap;
         }
-        return resultNodeMap;
     }