|
@@ -62,6 +62,8 @@ public class TaskService {
|
|
|
String pyPath;
|
|
|
@Value("${scheduler.linux-temp-path}")
|
|
|
String linuxTempPath;
|
|
|
+ @Autowired
|
|
|
+ ProjectMapper projectMapper;
|
|
|
|
|
|
public void taskTick(String taskId) {
|
|
|
log.info("------- /tick 接收到任务 " + taskId + "的心跳!");
|
|
@@ -81,11 +83,13 @@ public class TaskService {
|
|
|
log.info("------- /state 任务 " + taskId + " 的父项目为:" + projectId);
|
|
|
int taskNum = projectMapper.selectTaskNumById(projectId);
|
|
|
int endTaskNum = projectMapper.selectEndTaskNum(projectId); // 查询已结束的任务 'Aborted', 'PendingAnalysis', 'Terminated'
|
|
|
+ projectMapper.updateTaskCompleted(projectId, endTaskNum);
|
|
|
log.info("------- /state 项目 " + projectId + " 完成进度为:" + endTaskNum + "/" + taskNum);
|
|
|
if (taskNum != endTaskNum) { // 已结束任务数等于所有任务数量,才会准备打分;否则退出。
|
|
|
return;
|
|
|
}
|
|
|
projectMapper.updateProjectState(projectId, DictConstants.PROJECT_COMPLETED); // 修改该 project 的状态为已完成
|
|
|
+ LinuxUtil.execute("kubectl delete job project-" + projectId);
|
|
|
List<TaskPO> taskList = taskMapper.selectTaskListByProjectId(projectId); // 所有任务信息
|
|
|
// -------------------------------- 查询叶子指标 --------------------------------
|
|
|
List<IndexTemplatePO> leafIndexTemplateList = indexTemplateMapper.selectLeafIndexWithRuleDetailsByPackageId(scenePackageId);
|
|
@@ -202,6 +206,14 @@ public class TaskService {
|
|
|
return DictConstants.TASK_PENDING.equals(state);
|
|
|
}
|
|
|
|
|
|
+ @SneakyThrows
|
|
|
+ public Boolean taskShutdown(String taskId, String podName) {
|
|
|
+ // 查询 task 如果不是 pending 则不执行
|
|
|
+ LinuxUtil.execute("kubectl delete pod " + podName);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public double compute(List<IndexTemplatePO> leaf) {
|
|
|
double result = 0.0;
|
|
|
Map<String, List<IndexTemplatePO>> groups = leaf.stream().collect(Collectors.groupingBy(IndexTemplatePO::getParentId));
|