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 b206ce8f..43f6fd1c 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 @@ -65,8 +65,8 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { //获取实例当前状态 String currentStatus = experimentIns.getStatus(); - // 检查是否需要调用接口查询状态:当原本状态为null或running或Pending时调用argo接口 - if (StringUtils.isEmpty(currentStatus) || StringUtils.equals(currentStatus, "Running") || StringUtils.equals(currentStatus,"Pending")) { + // 检查是否需要调用接口查询状态:当原本状态为null或非终止态时调用argo接口 + if (StringUtils.isEmpty(currentStatus) || !isTerminatedState(currentStatus)) { String newStatus = this.queryStatusFromArgo(experimentIns.getArgoInsNs(), experimentIns.getArgoInsName(), id ); // 如果新状态不是null,并且与旧状态不同,则更新状态 @@ -91,12 +91,12 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { public List getByExperimentId(Integer experimentId) { List experimentInsList = experimentInsDao.getByExperimentId(experimentId); for (ExperimentIns experimentIns: experimentInsList) { - if ( experimentIns!=null && (StringUtils.isEmpty(experimentIns.getStatus())) || StringUtils.equals(experimentIns.getStatus(), "Running") || StringUtils.equals(experimentIns.getStatus(),"Pending")) { -// //当原本状态为null或running或Pending时才调用argo接口 + //当原本状态为null或非终止态时才调用argo接口 + if ( experimentIns!=null && (StringUtils.isEmpty(experimentIns.getStatus())) || !isTerminatedState(experimentIns.getStatus())) { String newStatus = this.queryStatusFromArgo(experimentIns.getArgoInsNs(), experimentIns.getArgoInsName(),experimentIns.getId()); experimentIns.setStatus(newStatus); //只有当新状态是终止态时才更新数据库 - if (!(StringUtils.equals(newStatus, "Running") || StringUtils.equals(newStatus,"Pending"))) { + if (isTerminatedState(newStatus)) { this.update(experimentIns); } } @@ -393,4 +393,10 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { } } + private boolean isTerminatedState(String state) { + // 定义终止态的列表,例如 "Succeeded", "Failed" 等 + List terminatedStates = Arrays.asList("Succeeded", "Failed", "Terminated"); + return terminatedStates.contains(state); + } + }