diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java index 5136891280..48bb9c624d 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java @@ -312,18 +312,11 @@ public class ProcessServiceImpl implements ProcessService { //serial wait //when we get the running instance(or waiting instance) only get the priority instance(by id) if (processDefinition.getExecutionType().typeIsSerialWait()) { - while (true) { - List runningProcessInstances = this.processInstanceMapper.queryByProcessDefineCodeAndProcessDefinitionVersionAndStatusAndNextId(processInstance.getProcessDefinitionCode(), - processInstance.getProcessDefinitionVersion(), Constants.RUNNING_PROCESS_STATE, processInstance.getId()); - if (CollectionUtils.isEmpty(runningProcessInstances)) { - processInstance.setState(ExecutionStatus.SUBMITTED_SUCCESS); - saveProcessInstance(processInstance); - return; - } - ProcessInstance runningProcess = runningProcessInstances.get(0); - if (this.processInstanceMapper.updateNextProcessIdById(processInstance.getId(), runningProcess.getId())) { - return; - } + List runningProcessInstances = this.processInstanceMapper.queryByProcessDefineCodeAndProcessDefinitionVersionAndStatusAndNextId(processInstance.getProcessDefinitionCode(), + processInstance.getProcessDefinitionVersion(), Constants.RUNNING_PROCESS_STATE, processInstance.getId()); + if (CollectionUtils.isEmpty(runningProcessInstances)) { + processInstance.setState(ExecutionStatus.SUBMITTED_SUCCESS); + saveProcessInstance(processInstance); } } else if (processDefinition.getExecutionType().typeIsSerialDiscard()) { List runningProcessInstances = this.processInstanceMapper.queryByProcessDefineCodeAndProcessDefinitionVersionAndStatusAndNextId(processInstance.getProcessDefinitionCode(),