in src/main/java/com/aliyun/cloudops/acs/ecs/controller/OpsTaskController.java [137:168]
public boolean test(Invocation invocation) {
if (invocation == null) {
return false;
}
for (InvokeInstance instance : invocation.getInvokeInstances()) {
if (isFinished(instance.getInvocationStatus())) {
OpsTaskItem item = this.taskService.findTaskItem(
invocation.getInvokeId(),
instance.getInstanceId()
);
if (!item.getStatus().isFinished()) {
item.setStatus(InvocationStatus.valueOf(instance.getInvocationStatus()));
item.setOutput(instance.getOutput());
item.setDropped(instance.getDropped());
item.setExitCode(instance.getExitCode());
item.setErrorCode(instance.getErrorCode());
item.setErrorInfo(instance.getErrorInfo());
item.setUpdateTime(new Date());
item.setFinishTime(new Date());
this.taskService.saveTaskItem(item);
}
}
}
if (isFinished(invocation.getInvocationStatus())) {
OpsTask task = this.taskService.findTask(invocation.getInvokeId());
task.setFinishTime(new Date()); //TODO: use invocation.getFinishTime();
task.setStatus(InvocationStatus.valueOf(invocation.getInvocationStatus()));
this.taskService.saveTask(task, Collections.emptyList());
return true;
}
return false;
}