This is an automated email from the ASF dual-hosted git repository.

leonbao pushed a commit to branch json_split
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git


The following commit(s) were added to refs/heads/json_split by this push:
     new 929655f  refactor task node
929655f is described below

commit 929655fdbe57e649ac8dc72a87af15fa3c5ef718
Author: lenboo <[email protected]>
AuthorDate: Fri Feb 26 15:05:32 2021 +0800

    refactor task node
---
 .../server/master/runner/MasterExecThread.java     |  2 +-
 .../server/master/DependentTaskTest.java           | 11 ++++---
 .../service/process/ProcessService.java            | 37 ++++++++--------------
 3 files changed, 21 insertions(+), 29 deletions(-)

diff --git 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
index 5583240..b8c3e59 100644
--- 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
+++ 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
@@ -388,7 +388,7 @@ public class MasterExecThread implements Runnable {
      */
     private void buildFlowDag() throws Exception {
         recoverNodeIdList = 
getStartTaskInstanceList(processInstance.getCommandParam());
-        List<TaskNode> taskNodeList = 
processService.getTaskNodeListByDefinitionId(processInstance.getProcessDefinitionId());
+        List<TaskNode> taskNodeList = 
processService.genTaskNodeList(processInstance.getProcessDefinitionCode(), 
processInstance.getProcessDefinitionVersion());
         forbiddenTaskList.clear();
         taskNodeList.stream().forEach(taskNode -> {
             if (taskNode.isForbidden()) {
diff --git 
a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/master/DependentTaskTest.java
 
b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/master/DependentTaskTest.java
index 0f6239a..52ed4a9 100644
--- 
a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/master/DependentTaskTest.java
+++ 
b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/master/DependentTaskTest.java
@@ -17,11 +17,13 @@
 package org.apache.dolphinscheduler.server.master;
 
 import org.apache.dolphinscheduler.common.enums.ExecutionStatus;
+import org.apache.dolphinscheduler.common.enums.TaskType;
 import org.apache.dolphinscheduler.common.model.DateInterval;
 import org.apache.dolphinscheduler.common.model.TaskNode;
 import org.apache.dolphinscheduler.common.utils.dependent.DependentDateUtils;
 import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
 import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
+import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
 import org.apache.dolphinscheduler.dao.entity.TaskInstance;
 import org.apache.dolphinscheduler.server.master.config.MasterConfig;
 import 
org.apache.dolphinscheduler.server.master.runner.DependentTaskExecThread;
@@ -182,11 +184,12 @@ public class DependentTaskTest {
     }
 
 
-    private List<TaskNode> getTaskNodes(){
-        List<TaskNode> list = new ArrayList<>();
-        TaskNode taskNode = new TaskNode();
+    private List<TaskDefinition> getTaskNodes(){
+        List<TaskDefinition> list = new ArrayList<>();
+        TaskDefinition taskNode = new TaskDefinition();
+        taskNode.setCode(1111L);
         taskNode.setName("C");
-        taskNode.setType("SQL");
+        taskNode.setTaskType(TaskType.SQL);
         list.add(taskNode);
         return list;
     }
diff --git 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
index 6b0e8c3..83cc50b 100644
--- 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
+++ 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
@@ -344,25 +344,23 @@ public class ProcessService {
     /**
      * get task node list by definitionId
      */
-    public List<TaskNode> getTaskNodeListByDefinitionId(Integer defineId) {
+    public List<TaskDefinition> getTaskNodeListByDefinitionId(Integer 
defineId) {
         ProcessDefinition processDefinition = 
processDefineMapper.selectById(defineId);
         if (processDefinition == null) {
             logger.error("process define not exists");
             return new ArrayList<>();
         }
-
         List<ProcessTaskRelation> processTaskRelations = 
getProcessTaskRelationList(processDefinition.getCode(), 
processDefinition.getVersion());
         Map<Long, TaskDefinition> taskDefinitionMap = new HashMap<>();
         for (ProcessTaskRelation processTaskRelation : processTaskRelations) {
             if 
(taskDefinitionMap.containsKey(processTaskRelation.getPostTaskCode())) {
-                TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByDefinitionCode(processTaskRelation.getPostTaskCode());
+                TaskDefinition taskDefinition = 
taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(
+                        processTaskRelation.getPostTaskCode(), 
processTaskRelation.getPostNodeVersion());
                 taskDefinitionMap.put(processTaskRelation.getPostTaskCode(), 
taskDefinition);
             }
         }
-        return taskDefinitionMap.entrySet()
-                .stream()
-                .map(e -> 
JSONUtils.parseObject(JSONUtils.toJsonString(e.getValue()), TaskNode.class))
-                .collect(Collectors.toList());
+        return new ArrayList<>(taskDefinitionMap.values());
+
     }
 
     /**
@@ -394,24 +392,13 @@ public class ProcessService {
     public ProcessDefinition findProcessDefinition(Long processDefinitionCode, 
int version) {
         ProcessDefinition processDefinition = 
processDefineMapper.queryByCode(processDefinitionCode);
         if (processDefinition.getVersion() != version) {
-            ProcessDefinitionLog log = 
processDefineLogMapper.queryByDefinitionCodeAndVersion(processDefinitionCode, 
version);
-            processDefinition = convertFromLog(log);
+            processDefinition = 
processDefineLogMapper.queryByDefinitionCodeAndVersion(processDefinitionCode, 
version);
+            processDefinition.setId(0);
         }
         return processDefinition;
     }
 
     /**
-     * covert log to process definition
-     */
-    public ProcessDefinition convertFromLog(ProcessDefinitionLog 
processDefinitionLog) {
-        ProcessDefinition definition = processDefinitionLog;
-        if (null != definition) {
-            definition.setId(0);
-        }
-        return definition;
-    }
-
-    /**
      * delete work process instance by id
      *
      * @param processInstanceId processInstanceId
@@ -500,11 +487,13 @@ public class ProcessService {
      * @param ids ids
      */
     public void recurseFindSubProcessId(int parentId, List<Integer> ids) {
-        List<TaskNode> taskNodeList = 
this.getTaskNodeListByDefinitionId(parentId);
+        List<TaskDefinition> taskNodeList = 
this.getTaskNodeListByDefinitionId(parentId);
+
+
         if (taskNodeList != null && !taskNodeList.isEmpty()) {
 
-            for (TaskNode taskNode : taskNodeList) {
-                String parameter = taskNode.getParams();
+            for (TaskDefinition taskNode : taskNodeList) {
+                String parameter = taskNode.getTaskParams();
                 ObjectNode parameterJson = JSONUtils.parseObject(parameter);
                 if (parameterJson.get(CMD_PARAM_SUB_PROCESS_DEFINE_ID) != 
null) {
                     SubProcessParameters subProcessParam = 
JSONUtils.parseObject(parameter, SubProcessParameters.class);
@@ -2404,7 +2393,7 @@ public class ProcessService {
      * @return dag graph
      */
     public DAG<String, TaskNode, TaskNodeRelation> 
genDagGraph(ProcessDefinition processDefinition) {
-        List<TaskNode> taskNodeList = 
this.getTaskNodeListByDefinitionId(processDefinition.getId());
+        List<TaskNode> taskNodeList = 
genTaskNodeList(processDefinition.getCode(), processDefinition.getVersion());
         List<ProcessTaskRelation> processTaskRelations = 
getProcessTaskRelationList(processDefinition.getCode(), 
processDefinition.getVersion());
         ProcessDag processDag = DagHelper.getProcessDag(taskNodeList, 
processTaskRelations);
         // Generate concrete Dag to be executed

Reply via email to