|
@@ -146,25 +146,31 @@ public class ManualProjectConsumer {
|
|
|
int maxSimulationTime = projectMessageDTO.getMaxSimulationTime();
|
|
|
|
|
|
for (ScenePO scenePO : sceneList) {
|
|
|
- String taskId = StringUtil.getRandomUUID();
|
|
|
+ String sceneId = scenePO.getId();
|
|
|
+ // 根据 projectId 和 sceneId 查询任务信息
|
|
|
+ String taskId = taskMapper.selectIdByProjectIdAndSceneId(projectId, sceneId);
|
|
|
String resultPath = resultPathMinio + projectId + "/" + taskId;
|
|
|
- // 保存任务信息
|
|
|
- TaskPO taskPO = TaskPO.builder() // run_start_time 和 run_end_time 不填
|
|
|
- .id(taskId)
|
|
|
- .pId(projectId)
|
|
|
- .sceneId(scenePO.getId())
|
|
|
- .sceneName(scenePO.getName())
|
|
|
- .sceneType(scenePO.getType())
|
|
|
- .runState(DictConstants.TASK_PENDING)
|
|
|
- .runResultFilePath(resultPath)
|
|
|
- .build();
|
|
|
- taskPO.setCreateTime(TimeUtil.getNowForMysql());
|
|
|
- taskPO.setCreateUserId(USER_ID);
|
|
|
- taskPO.setModifyTime(TimeUtil.getNowForMysql());
|
|
|
- taskPO.setModifyUserId(USER_ID);
|
|
|
- taskPO.setModifyTime(TimeUtil.getNowForMysql());
|
|
|
- taskPO.setIsDeleted("0");
|
|
|
- taskMapper.insert(taskPO);
|
|
|
+ if (StringUtil.isEmpty(taskId)) { // 判断是创建任务还是重新执行任务
|
|
|
+ taskId = StringUtil.getRandomUUID();
|
|
|
+ // 保存任务信息
|
|
|
+ TaskPO taskPO = TaskPO.builder() // run_start_time 和 run_end_time 不填
|
|
|
+ .id(taskId)
|
|
|
+ .pId(projectId)
|
|
|
+ .sceneId(scenePO.getId())
|
|
|
+ .sceneName(scenePO.getName())
|
|
|
+ .sceneType(scenePO.getType())
|
|
|
+ .runState(DictConstants.TASK_PENDING)
|
|
|
+ .runResultFilePath(resultPath)
|
|
|
+ .build();
|
|
|
+ taskPO.setCreateTime(TimeUtil.getNowForMysql());
|
|
|
+ taskPO.setCreateUserId(USER_ID);
|
|
|
+ taskPO.setModifyTime(TimeUtil.getNowForMysql());
|
|
|
+ taskPO.setModifyUserId(USER_ID);
|
|
|
+ taskPO.setModifyTime(TimeUtil.getNowForMysql());
|
|
|
+ taskPO.setIsDeleted("0");
|
|
|
+ taskMapper.insert(taskPO);
|
|
|
+ }
|
|
|
+
|
|
|
// 心跳信息存在緩存中
|
|
|
redisTemplate.opsForValue().set(manualProjectTopic + ":" + projectId + ":" + taskId, TimeUtil.getNowString());
|
|
|
// 组装 task 消息
|