diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/StateWheelExecuteThread.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/StateWheelExecuteThread.java index bc3f257a80..de6db1ddb2 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/StateWheelExecuteThread.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/StateWheelExecuteThread.java @@ -118,12 +118,11 @@ public class StateWheelExecuteThread extends Thread { } for (TaskInstance taskInstance : this.taskInstanceRetryCheckList.values()) { - if (taskInstance.taskCanRetry() && taskInstance.retryTaskIntervalOverTime()) { + if (!taskInstance.getState().typeIsFinished() && (taskInstance.isSubProcess() || taskInstance.isDependTask())) { addTaskStateChangeEvent(taskInstance); - taskInstanceRetryCheckList.remove(taskInstance.getId()); - } - if (taskInstance.isSubProcess() || taskInstance.isDependTask()) { + } else if (taskInstance.taskCanRetry() && taskInstance.retryTaskIntervalOverTime()) { addTaskStateChangeEvent(taskInstance); + taskInstanceRetryCheckList.remove(taskInstance.getId()); } } } diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java index bc6159d9c3..085c1d569d 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java @@ -381,6 +381,8 @@ public class WorkflowExecuteThread implements Runnable { this.addRetryCheck(task); } else { submitStandByTask(); + taskTimeoutCheckList.remove(task.getId()); + taskRetryCheckList.remove(task.getId()); } return; }