|
@@ -127,13 +127,18 @@ public class TaskManager {
|
|
|
ProjectMessageDTO projectMessageDTO = JsonUtil.jsonToBean(stringRedisTemplate.opsForValue().get(redisPrefix.getProjectRunningKey()), ProjectMessageDTO.class);
|
|
|
int taskTotal = projectMessageDTO.getTaskTotal();
|
|
|
int taskCompleted = projectMessageDTO.getTaskCompleted();
|
|
|
+ Integer currentParallelism = projectMessageDTO.getCurrentParallelism();
|
|
|
log.info("TaskManager--isProjectCompleted 项目 " + projectId + " 完成进度为:" + (taskCompleted + 1) + "/" + taskTotal);
|
|
|
if (taskCompleted + 1 == taskTotal) {
|
|
|
return true;
|
|
|
- } else {
|
|
|
- projectMessageDTO.setTaskCompleted(taskCompleted + 1);
|
|
|
+ } else { // 项目没有完成
|
|
|
+ projectMessageDTO.setTaskCompleted(taskCompleted + 1); // 增加已完成任务数
|
|
|
stringRedisTemplate.opsForValue().set(redisPrefix.getProjectRunningKey(), JsonUtil.beanToJson(projectMessageDTO));
|
|
|
- createNextPod(projectId, nodeName, podName); // 项目没有完成则启动下一个 pod,同时删除上一个 pod
|
|
|
+ if (taskTotal - taskCompleted <= currentParallelism) {
|
|
|
+ projectUtil.addOneParallelismToNode(nodeName); // 如果 taskTotal - taskCompleted 小于 currentParallelism ,则不启动下一个 pod 并归还一个并行度
|
|
|
+ } else {
|
|
|
+ createNextPod(projectId, nodeName, podName); // 删除上一个 pod,并启动下一个 pod
|
|
|
+ }
|
|
|
return false;
|
|
|
}
|
|
|
} catch (Exception exception) {
|