root 2 роки тому
батько
коміт
5c9c8085cc

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

@@ -22,6 +22,7 @@ import org.springframework.stereotype.Component;
 import javax.annotation.Resource;
 import java.io.File;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -99,59 +100,26 @@ public class ProjectUtil {
         return nodeName + "#" + podName + ".yaml";
     }
 
-    @SneakyThrows
+
     public void deletePod(String podName) {
-        String key = "pod:" + podName + ":node";
-        // 先删除 redis key
-        RedisUtil.deleteByKey(stringRedisTemplate, "pod:" + podName + ":node");
         try {
+            String key = "pod:" + podName + ":node";
+            // 先删除 redis key
+            RedisUtil.deleteByKey(stringRedisTemplate, "pod:" + podName + ":node");
             KubernetesUtil.deletePod(apiClient, kubernetesConfiguration.getNamespace(), podName);
+            TimeUnit.SECONDS.sleep(10); // 暂停 10 秒等待资源完全释放。
+            log.info("ProjectUtil--deletePod 删除 pod 并删除 redis 键值对:" + key);
         } catch (Exception e) {
-            log.info("ProjectUtil--deletePod pod " + podName + " 不存在。");
+            e.printStackTrace();
+            log.error("ProjectUtil--deletePod pod " + podName + " 不存在。", e);
         }
-
-        log.info("ProjectUtil--deletePod 删除 pod 并删除 redis 键值对:" + key);
     }
 
-    @SneakyThrows
-    public void deletePodAndAddOneParallelismToNode(String podName, String nodeName) {
-        String key = "pod:" + podName + ":node";
-        // 先删除 redis key
-        RedisUtil.deleteByKey(stringRedisTemplate, "pod:" + podName + ":node");
-        try {
-            KubernetesUtil.deletePod(apiClient, kubernetesConfiguration.getNamespace(), podName);
-            // 节点并行度加一
-            addOneParallelismToNode(nodeName);
-        } catch (Exception e) {
-            log.info("ProjectUtil--deletePod pod " + podName + " 不存在。");
-        }
-
-        log.info("ProjectUtil--deletePod 删除 pod 并删除 redis 键值对:" + key);
-    }
 
     public String getNodeNameOfPod(String podName) {
         return stringRedisTemplate.opsForValue().get("pod:" + podName + ":node");
     }
 
-    /**
-     * 更改一个名字继续启动
-     *
-     * @param projectId   项目 id
-     * @param nodeName    运行 pod 的节点名称
-     * @param lastPodName 即将删除的 pod 名称
-     */
-    @SneakyThrows
-    public void createNextPod(String projectId, String nodeName, String lastPodName) {
-        //1 删除上一个 pod 和 redis 键值对
-        deletePod(lastPodName);
-//        String lastPodString = FileUtil.read(podYamlDirectory + lastPodName + ".yaml");
-        String lastPodString = FileUtil.read(podYamlDirectory + getPodYamlName(nodeName, lastPodName));
-        String nextPodName = getRandomPodName(projectId);
-        String nextPodString = lastPodString.replace(lastPodName, nextPodName); // pod 名称包括 projectId 和 随机字符串
-        log.info("ProjectUtil--createNextPod 创建项目 " + projectId + " 的下一个 pod。");
-        createPod(nodeName, nextPodName, nextPodString);
-    }
-
     /**
      * 更改一个名字继续启动
      *