diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ExperimentInstanceStatusTask.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ExperimentInstanceStatusTask.java index 131dca48..51feb5b4 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ExperimentInstanceStatusTask.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/scheduling/ExperimentInstanceStatusTask.java @@ -34,7 +34,6 @@ public class ExperimentInstanceStatusTask { // 首先查到所有非终止态的实验实例 List experimentInsList = experimentInsService.queryByExperimentIsNotTerminated(); // 去argo查询状态 - List updateList = new ArrayList<>(); if (experimentInsList != null && experimentInsList.size() > 0) { for (ExperimentIns experimentIns : experimentInsList) { //当原本状态为null或非终止态时才调用argo接口 @@ -49,48 +48,6 @@ public class ExperimentInstanceStatusTask { synchronized (experimentIds) { experimentIds.add(experimentIns.getExperimentId()); } - updateList.add(experimentIns); - } - } - if (updateList.size() > 0) { - experimentInsDao.insertOrUpdateBatch(updateList); - - //遍历模型关系表,找到 - List modelDependencyList = new ArrayList(); - for (ExperimentIns experimentIns : updateList) { - ModelDependency modelDependencyquery = new ModelDependency(); - modelDependencyquery.setExpInsId(experimentIns.getId()); - modelDependencyquery.setState(2); - - List modelDependencyListquery = modelDependencyDao.queryByModelDependency(modelDependencyquery); - if (modelDependencyListquery == null || modelDependencyListquery.size() == 0) { - continue; - } - ModelDependency modelDependency = modelDependencyListquery.get(0); - //查看状态, - if (StringUtils.equals("Failed", experimentIns.getStatus())) { - //取出节点状态 - String trainTask = modelDependency.getTrainTask(); - Map trainMap = JacksonUtil.parseJSONStr2Map(trainTask); - String task_id = (String) trainMap.get("task_id"); - if (StringUtils.isEmpty(task_id)) { - continue; - } - String nodesStatus = experimentIns.getNodesStatus(); - Map nodeMaps = JacksonUtil.parseJSONStr2Map(nodesStatus); - Map nodeMap = JacksonUtil.parseJSONStr2Map(JacksonUtil.toJSONString(nodeMaps.get(task_id))); - - if (nodeMap == null) { - continue; - } - if (!StringUtils.equals("Succeeded", (String) nodeMap.get("phase"))) { - modelDependency.setState(0); - modelDependencyList.add(modelDependency); - } - } - } - if (modelDependencyList.size() > 0) { - modelDependencyDao.insertOrUpdateBatch(modelDependencyList); } } } @@ -105,7 +62,7 @@ public class ExperimentInstanceStatusTask { for (Integer experimentId : experimentIds) { // 获取当前实验的所有实例列表 List insList = experimentInsService.getByExperimentId(experimentId); - List statusList = new ArrayList(); + List statusList = new ArrayList<>(); // 更新实验状态列表 for (int i = 0; i < insList.size(); i++) { statusList.add(insList.get(i).getStatus()); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java index 4d3a96b9..635b10bd 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.platform.service.impl; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.platform.domain.DatasetTempStorage; +import com.ruoyi.platform.domain.Experiment; import com.ruoyi.platform.domain.ExperimentIns; import com.ruoyi.platform.domain.ModelDependency1; import com.ruoyi.platform.mapper.DatasetTempStorageDao; @@ -120,7 +121,7 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { * @return 实验列表 */ @Override - public List getByExperimentId(Integer experimentId) throws IOException { + public List getByExperimentId(Integer experimentId) { //代码全部迁移至定时任务 //搞个标记,当状态改变才去改表 @@ -239,6 +240,7 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { return "实验实例正在运行,不可删除"; } experimentIns.setState(0); + updateExperimentStatus(experimentIns.getExperimentId()); return this.experimentInsDao.update(experimentIns) > 0 ? "删除成功" : "删除失败"; } @@ -665,6 +667,21 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { return flag; } + void updateExperimentStatus(Integer experimentId) { + List insList = getByExperimentId(experimentId); + List statusList = new ArrayList<>(); + // 更新实验状态列表 + for (int i = 0; i < insList.size(); i++) { + statusList.add(insList.get(i).getStatus()); + } + String subStatus = statusList.toString().substring(1, statusList.toString().length() - 1); + Experiment experiment = experimentDao.queryById(experimentId); + experiment.setStatusList(subStatus); + List updateExperiments = new ArrayList<>(); + updateExperiments.add(experiment); + experimentDao.insertOrUpdateBatch(updateExperiments); + } + }