Unverified Commit 4946e888 authored by bao liang's avatar bao liang Committed by GitHub
Browse files

move dependent and conditions to master server (#2423)



* move condition and dependent to master

* move conditions to master

* move conditions and dependent task to master

* move conditions to master

* update test

* add log

* add test for dependent task

* add test for dependent task

* update

* update

* refactor complexity code

* refactor complexity code

* add conditions task test

* add conditions task test

* update

* update host to host:port

* update logback.xml

Co-authored-by: default avatarbaoliang <baoliang@analysys.com.cn>
parent ca66cfec
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ public enum TaskType {
     */
    SHELL(0, "shell"),
    SQL(1, "sql"),
    SUB_PROCESS(2, "sub process"),
    SUB_PROCESS(2, "sub_process"),
    PROCEDURE(3, "procedure"),
    MR(4, "mr"),
    SPARK(5, "spark"),
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import java.util.List;

public class DependentUtilsTest {
    private static final Logger logger = LoggerFactory.getLogger(ShellExecutorTest.class);

    @Test
    public void getDependResultForRelation() {
        //failed
+12 −3
Original line number Diff line number Diff line
@@ -377,9 +377,6 @@ public class TaskInstance implements Serializable {
    }


    public boolean isSubProcess(){
        return TaskType.SUB_PROCESS.equals(TaskType.valueOf(this.taskType));
    }

    public String getDependency(){

@@ -458,6 +455,18 @@ public class TaskInstance implements Serializable {
        return resources;
    }

    public boolean isSubProcess(){
        return TaskType.SUB_PROCESS.equals(TaskType.valueOf(this.taskType));
    }

    public boolean isDependTask(){
        return TaskType.DEPENDENT.equals(TaskType.valueOf(this.taskType));
    }

    public boolean isConditionsTask(){
        return TaskType.CONDITIONS.equals(TaskType.valueOf(this.taskType));
    }

    public void setResources(List<String> resources) {
        this.resources = resources;
    }
+44 −0
Original line number Diff line number Diff line
@@ -361,4 +361,48 @@ public class DagHelper {
        processDag.setNodes(taskNodeList);
        return processDag;
    }

    /**
     * is there have conditions after the parent node
     * @param parentNodeName
     * @return
     */
    public static boolean haveConditionsAfterNode(String parentNodeName,
                                                  DAG<String, TaskNode, TaskNodeRelation> dag
                                            ){
        boolean result = false;
        Set<String> subsequentNodes = dag.getSubsequentNodes(parentNodeName);
        if(CollectionUtils.isEmpty(subsequentNodes)){
            return result;
        }
        for(String nodeName : subsequentNodes){
            TaskNode taskNode = dag.getNode(nodeName);
            List<String> preTasksList = JSONUtils.toList(taskNode.getPreTasks(), String.class);
            if(preTasksList.contains(parentNodeName) && taskNode.isConditionsTask()){
                return true;
            }
        }
        return result;
    }

    /**
     * is there have conditions after the parent node
     * @param parentNodeName
     * @return
     */
    public static boolean haveConditionsAfterNode(String parentNodeName,
                                                  List<TaskNode> taskNodes
    ){
        boolean result = false;
        if(CollectionUtils.isEmpty(taskNodes)){
            return result;
        }
        for(TaskNode taskNode : taskNodes){
            List<String> preTasksList = JSONUtils.toList(taskNode.getPreTasks(), String.class);
            if(preTasksList.contains(parentNodeName) && taskNode.isConditionsTask()){
                return true;
            }
        }
        return result;
    }
}
+12 −2
Original line number Diff line number Diff line
@@ -29,11 +29,21 @@ public class TaskInstanceTest {
        TaskInstance taskInstance = new TaskInstance();

        //sub process
        taskInstance.setTaskType("sub process");
        taskInstance.setTaskType("SUB_PROCESS");
        Assert.assertTrue(taskInstance.isSubProcess());

        //not sub process
        taskInstance.setTaskType("http");
        taskInstance.setTaskType("HTTP");
        Assert.assertFalse(taskInstance.isSubProcess());

        //sub process
        taskInstance.setTaskType("CONDITIONS");
        Assert.assertTrue(taskInstance.isConditionsTask());

        //sub process
        taskInstance.setTaskType("DEPENDENT");
        Assert.assertTrue(taskInstance.isDependTask());


    }
}
Loading