健壮性增加

This commit is contained in:
fans 2023-11-20 10:36:41 +08:00
parent c548e4e150
commit f07c0ea801
5 changed files with 43 additions and 36 deletions

View File

@ -59,7 +59,7 @@ public interface ExperimentInsService {
/**
* 逻辑删除数据
*/
boolean removeById(Integer id);
String removeById(Integer id);
/**
* 通过主键删除数据
*

View File

@ -63,7 +63,13 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {
*/
@Override
public ExperimentIns queryById(Integer id) {
return this.experimentInsDao.queryById(id);
ExperimentIns experimentIns = this.experimentInsDao.queryById(id);
if (experimentIns!=null && StringUtils.isEmpty(experimentIns.getStatus())) {
String status = this.queryStatusFromArgo(experimentIns.getArgoInsNs(), experimentIns.getArgoInsName());
experimentIns.setStatus(status);
this.update(experimentIns);
}
return experimentIns;
}
/**
@ -74,7 +80,15 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {
*/
@Override
public List<ExperimentIns> getByExperimentId(Integer experimentId) {
return experimentInsDao.getByExperimentId(experimentId);
List<ExperimentIns> experimentInsList = experimentInsDao.getByExperimentId(experimentId);
for (ExperimentIns experimentIns: experimentInsList) {
if (experimentIns!=null && StringUtils.isEmpty(experimentIns.getStatus())) {
String status = this.queryStatusFromArgo(experimentIns.getArgoInsNs(), experimentIns.getArgoInsName());
experimentIns.setStatus(status);
this.update(experimentIns);
}
}
return experimentInsList;
}
/**
@ -87,7 +101,15 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {
@Override
public Page<ExperimentIns> queryByPage(ExperimentIns experimentIns, PageRequest pageRequest) {
long total = this.experimentInsDao.count(experimentIns);
return new PageImpl<>(this.experimentInsDao.queryAllByLimit(experimentIns, pageRequest), pageRequest, total);
List<ExperimentIns> experimentInsList = this.experimentInsDao.queryAllByLimit(experimentIns, pageRequest);
for (ExperimentIns ins: experimentInsList) {
if (experimentIns!=null && StringUtils.isEmpty(experimentIns.getStatus())) {
String status = this.queryStatusFromArgo(ins.getArgoInsNs(), ins.getArgoInsName());
ins.setStatus(status);
this.update(experimentIns);
}
}
return new PageImpl<>(experimentInsList, pageRequest, total);
}
/**
@ -124,10 +146,19 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {
}
@Override
public boolean removeById(Integer id) {
public String removeById(Integer id) {
ExperimentIns experimentIns = experimentInsDao.queryById(id);
if (experimentIns == null){
return "实验实例不存在";
}
if (StringUtils.isEmpty(experimentIns.getStatus())){
experimentIns.setStatus(queryStatusFromArgo(experimentIns.getArgoInsNs(), experimentIns.getArgoInsName()));
}
if (StringUtils.equals(experimentIns.getStatus(),"Running")){
return "实验实例正在运行,不可删除";
}
experimentIns.setState(0);
return this.experimentInsDao.update(experimentIns)>0;
return this.experimentInsDao.update(experimentIns)>0?"删除成功":"删除失败";
}
@ -206,7 +237,7 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {
String name = experimentIns.getArgoInsName();
String namespace = experimentIns.getArgoInsNs();
// 获取当前状态如果为空则从Argo查询
if (currentStatus == null || currentStatus.isEmpty()) {
if (StringUtils.isEmpty(currentStatus)) {
currentStatus = queryStatusFromArgo(namespace, name);
}

View File

@ -59,13 +59,6 @@ public class ExperimentServiceImpl implements ExperimentService {
@Override
public Experiment queryById(Integer id) {
List<ExperimentIns> experimentInsList = this.experimentInsService.getByExperimentId(id);
for (ExperimentIns experimentIns: experimentInsList) {
if (!(StringUtils.equals(experimentIns.getStatus(),"Succeeded") || StringUtils.equals(experimentIns.getStatus(),"Failed"))) {
String status = this.experimentInsService.queryStatusFromArgo(experimentIns.getArgoInsNs(), experimentIns.getArgoInsName());
experimentIns.setStatus(status);
this.experimentInsService.update(experimentIns);
}
}
Experiment experiment = this.experimentDao.queryById(id);
if (experiment == null) {
return null;
@ -91,14 +84,6 @@ public class ExperimentServiceImpl implements ExperimentService {
//对于每一个从Experiment表中查询出来的id可能有多个实例每个实例的实验id是不同的
for (Experiment exp: experimentList) {
List<ExperimentIns> experimentInsList = this.experimentInsService.getByExperimentId(exp.getId());
for (ExperimentIns experimentIns: experimentInsList) {
if (!(experimentIns.getStatus().equals("Succeeded") || experimentIns.getStatus().equals("Failed") || experimentIns.getStatus().equals("Terminated"))) {
String status = this.experimentInsService.queryStatusFromArgo(experimentIns.getArgoInsNs(), experimentIns.getArgoInsName());
experimentIns.setStatus(status);
this.experimentInsService.update(experimentIns);
}
}
exp.setExperimentInsList(experimentInsList);
}
@ -120,20 +105,9 @@ public class ExperimentServiceImpl implements ExperimentService {
//对于每一个从Experiment表中查询出来的id可能有多个实例每个实例的实验id是不同的
for (Experiment exp: experimentList) {
List<ExperimentIns> experimentInsList = this.experimentInsService.getByExperimentId(exp.getId());
for (ExperimentIns experimentIns: experimentInsList) {
if (!(StringUtils.equals(experimentIns.getStatus(),"Succeeded") || StringUtils.equals(experimentIns.getStatus(),"Failed"))) {
String status = this.experimentInsService.queryStatusFromArgo(experimentIns.getArgoInsNs(), experimentIns.getArgoInsName());
experimentIns.setStatus(status);
this.experimentInsService.update(experimentIns);
}
}
exp.setExperimentInsList(experimentInsList);
}
return new PageImpl<>(experimentList);
}
/**
@ -250,6 +224,8 @@ public class ExperimentServiceImpl implements ExperimentService {
}catch (Exception e){
throw new RuntimeException(e);
}
List<ExperimentIns> experimentIns = experimentInsService.queryByExperimentId(id);
experiment.setExperimentInsList(experimentIns);
return experiment;
}

View File

@ -87,7 +87,7 @@ public class ExperimentInsController {
*/
@DeleteMapping
@ApiOperation("删除实验实例")
public ResponseEntity<Boolean> deleteById(Integer id) {
public ResponseEntity<String> deleteById(Integer id) {
return ResponseEntity.ok(this.experimentInsService.removeById(id));
}

View File

@ -70,7 +70,7 @@ spring:
# redis 配置
redis:
# 地址
host: 172.20.32.150
host: 127.0.0.1
# 端口默认为6379
port: 6379
# 数据库索引
@ -135,6 +135,6 @@ argo:
url: http://172.20.32.181:31000
convert: /api/v1/workflow/convert
workflowRun: /api/v1/workflow/run
workflowStatus: /api/v1/workflow/status
workflowStatus: /api/v1/workflow/getWorkflow
workflowTermination: /api/v1/workflow/terminate
workflowLog: /api/v1/workflow/getWorkflowLog