浏览代码

[FIX-#5721][master-server] Global params parameter missing (#5757)


Co-authored-by: wangxj <wangxj31>
wangxj3 3 年之前
父节点
当前提交
7a18adae52

+ 4 - 0
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskInstance.java

@@ -627,4 +627,8 @@ public class TaskInstance implements Serializable {
     public void setTaskParams(String taskParams) {
         this.taskParams = taskParams;
     }
+
+    public boolean isFirstRun() {
+        return endTime == null;
+    }
 }

+ 6 - 3
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java

@@ -520,9 +520,6 @@ public class MasterExecThread implements Runnable {
             taskInstance.setDelayTime(taskNode.getDelayTime());
         }
 
-        //get pre task ,get all the task varPool to this task
-        Set<String> preTask =  dag.getPreviousNodes(taskInstance.getName());
-        getPreVarPool(taskInstance, preTask);
         return taskInstance;
     }
 
@@ -1154,6 +1151,12 @@ public class MasterExecThread implements Runnable {
                         continue;
                     }
                 }
+                //init varPool only this task is the first time running
+                if (task.isFirstRun()) {
+                    //get pre task ,get all the task varPool to this task
+                    Set<String> preTask = dag.getPreviousNodes(task.getName());
+                    getPreVarPool(task, preTask);
+                }
                 DependResult dependResult = getDependResultForTask(task);
                 if (DependResult.SUCCESS == dependResult) {
                     if (retryTaskIntervalOverTime(task)) {