|
@@ -96,7 +96,7 @@ public class TaskManager {
|
|
|
log.info("TaskManager--state 修改任务 " + taskId + " 的状态为 " + state + ",pod 名称为:" + podName);
|
|
|
taskMapper.updateStateWithStartTime(taskId, state, TimeUtil.getNowForMysql());
|
|
|
return false;
|
|
|
- } else { // 出错和结束的 pod 都直接删除
|
|
|
+ } else { // 结束的 pod 都直接删除
|
|
|
// -------------------------------- 处理状态 --------------------------------
|
|
|
//TODO 暂时不用重试操作
|
|
|
try {
|
|
@@ -137,12 +137,13 @@ public class TaskManager {
|
|
|
ProjectMessageDTO projectMessageDTO = JsonUtil.jsonToBean(stringRedisTemplate.opsForValue().get(redisPrefix.getProjectRunningKey()), ProjectMessageDTO.class);
|
|
|
int taskTotal = projectMessageDTO.getTaskTotal();
|
|
|
int taskCompleted = projectMessageDTO.getTaskCompleted();
|
|
|
- log.info("TaskManager--isProjectCompleted 项目 " + projectId + " 完成进度为:" + (taskCompleted + 1) + "/" + taskCompleted);
|
|
|
+ log.info("TaskManager--isProjectCompleted 项目 " + projectId + " 完成进度为:" + (taskCompleted + 1) + "/" + taskTotal);
|
|
|
if (taskCompleted + 1 == taskTotal) {
|
|
|
return true;
|
|
|
} else {
|
|
|
projectMessageDTO.setTaskCompleted(taskCompleted + 1);
|
|
|
stringRedisTemplate.opsForValue().set(redisPrefix.getProjectRunningKey(), JsonUtil.beanToJson(projectMessageDTO));
|
|
|
+ createNextPod(projectId, podName); // 项目没有完成则启动下一个 pod
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
@@ -152,14 +153,15 @@ public class TaskManager {
|
|
|
* 更改一个名字继续启动
|
|
|
*
|
|
|
* @param projectId 项目 id
|
|
|
- * @param podName 项目名称
|
|
|
+ * @param lastPodName 项目名称
|
|
|
*/
|
|
|
@SneakyThrows
|
|
|
- public void createNextPod(String projectId, String podName) {
|
|
|
- String lastPodString = FileUtil.read(podYamlDirectory + podName + ".yaml");
|
|
|
+ public void createNextPod(String projectId, String lastPodName) {
|
|
|
+ String lastPodString = FileUtil.read(podYamlDirectory + lastPodName + ".yaml");
|
|
|
String nextPodName = "project-" + projectId + "-" + StringUtil.getRandomUUID();
|
|
|
- String nextPodString = lastPodString.replace("pod-name", podName); // pod 名称包括 projectId 和 随机字符串
|
|
|
+ String nextPodString = lastPodString.replace(lastPodName, nextPodName); // pod 名称包括 projectId 和 随机字符串
|
|
|
String nextPodFileName = nextPodName + ".yaml"; // 实际执行 pod 的文件名称
|
|
|
+ log.info("TaskManager--createNextPod 创建项目 " + projectId + " 的下一个 pod。");
|
|
|
projectUtil.createPod(nextPodString, nextPodFileName);
|
|
|
}
|
|
|
|