diff --git a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteRunnable.java b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteRunnable.java index 6bc43ce69f..12fc29de29 100644 --- a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteRunnable.java +++ b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteRunnable.java @@ -1688,8 +1688,10 @@ public class WorkflowExecuteRunnable implements Callable { if (state == WorkflowExecutionStatus.READY_STOP) { List killList = getCompleteTaskByState(TaskExecutionStatus.KILL); List failList = getCompleteTaskByState(TaskExecutionStatus.FAILURE); + List stopList = getCompleteTaskByState(TaskExecutionStatus.STOP); WorkflowExecutionStatus executionStatus; - if (CollectionUtils.isNotEmpty(killList) || CollectionUtils.isNotEmpty(failList) || !isComplementEnd()) { + if (CollectionUtils.isNotEmpty(stopList) || CollectionUtils.isNotEmpty(killList) + || CollectionUtils.isNotEmpty(failList) || !isComplementEnd()) { executionStatus = WorkflowExecutionStatus.STOP; } else { executionStatus = WorkflowExecutionStatus.SUCCESS; diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/enums/TaskExecutionStatus.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/enums/TaskExecutionStatus.java index ac5f401c50..f706fe5d4e 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/enums/TaskExecutionStatus.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/enums/TaskExecutionStatus.java @@ -88,8 +88,12 @@ public enum TaskExecutionStatus { return this == TaskExecutionStatus.PAUSE; } + public boolean isStop() { + return this == TaskExecutionStatus.STOP; + } + public boolean isFinished() { - return isSuccess() || isKill() || isFailure() || isPause(); + return isSuccess() || isKill() || isFailure() || isPause() || isStop(); } public boolean isNeedFaultTolerance() {