终止态判断

This commit is contained in:
西大锐 2024-01-19 11:48:04 +08:00
parent 5fbcf880ed
commit 8498ed3b31
1 changed files with 11 additions and 5 deletions

View File

@ -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<ExperimentIns> getByExperimentId(Integer experimentId) {
List<ExperimentIns> 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<String> terminatedStates = Arrays.asList("Succeeded", "Failed", "Terminated");
return terminatedStates.contains(state);
}
}