From 8498ed3b31d21e422bd0eff8fe284c2682c36964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A5=BF=E5=A4=A7=E9=94=90?= <1070211640@qq.com> Date: Fri, 19 Jan 2024 11:48:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=88=E6=AD=A2=E6=80=81=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ExperimentInsServiceImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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); + } + }