From 8354eea880627dc4a3993675a4135800467308c8 Mon Sep 17 00:00:00 2001 From: Wenjun Ruan Date: Thu, 21 Mar 2024 15:53:46 +0800 Subject: [PATCH] Fix delay execution task will never be dispatched --- .../master/runner/GlobalTaskDispatchWaitingQueueLooper.java | 2 +- .../operator/BaseTaskExecuteRunnableDispatchOperator.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/GlobalTaskDispatchWaitingQueueLooper.java b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/GlobalTaskDispatchWaitingQueueLooper.java index 49234a99d354..eabbdd8e10e3 100644 --- a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/GlobalTaskDispatchWaitingQueueLooper.java +++ b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/GlobalTaskDispatchWaitingQueueLooper.java @@ -69,7 +69,7 @@ public void run() { defaultTaskExecuteRunnable = globalTaskDispatchWaitingQueue.takeTaskExecuteRunnable(); try { TaskExecutionStatus status = defaultTaskExecuteRunnable.getTaskInstance().getState(); - if (status != TaskExecutionStatus.SUBMITTED_SUCCESS) { + if (status != TaskExecutionStatus.SUBMITTED_SUCCESS && status != TaskExecutionStatus.DELAY_EXECUTION) { log.warn("The TaskInstance {} state is : {}, will not dispatch", defaultTaskExecuteRunnable.getTaskInstance().getName(), status); continue; diff --git a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/operator/BaseTaskExecuteRunnableDispatchOperator.java b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/operator/BaseTaskExecuteRunnableDispatchOperator.java index cb2c7a0e07a9..8fa2e2926dc2 100644 --- a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/operator/BaseTaskExecuteRunnableDispatchOperator.java +++ b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/operator/BaseTaskExecuteRunnableDispatchOperator.java @@ -48,9 +48,10 @@ public void operate(DefaultTaskExecuteRunnable taskExecuteRunnable) { if (remainTime > 0) { taskInstance.setState(TaskExecutionStatus.DELAY_EXECUTION); taskInstanceDao.updateById(taskInstance); - log.info("Current taskInstance: {} is choose delay execution, delay time: {}/s, remainTime: {}/s", + log.info("Current taskInstance: {} is choose delay execution, delay time: {}/min, remainTime: {}/s", taskInstance.getName(), - taskInstance.getDelayTime(), remainTime); + taskInstance.getDelayTime(), + remainTime); } globalTaskDispatchWaitingQueue.submitTaskExecuteRunnable(taskExecuteRunnable); }