Ver código fonte

fix bug_7537 (#7551)

Co-authored-by: SbloodyS <sbloodys@qq.com>
SbloodyS 3 anos atrás
pai
commit
9f56123a26

+ 4 - 4
dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/StateWheelExecuteThread.java

@@ -187,12 +187,12 @@ public class StateWheelExecuteThread extends Thread {
             if (taskInstance == null) {
                 continue;
             }
-            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());
             }
         }
     }

+ 2 - 0
dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java

@@ -437,6 +437,8 @@ public class WorkflowExecuteThread {
                 stateWheelExecuteThread.addTask4RetryCheck(task);
             } else {
                 submitStandByTask();
+                stateWheelExecuteThread.removeTask4TimeoutCheck(task);
+                stateWheelExecuteThread.removeTask4RetryCheck(task);
             }
             return;
         }