分支节点

最近更新时间:2024-08-20 15:33:21

我的收藏
分支节点是 WeData 数据开发提供的逻辑控制节点。分支节点可以定义系统根据不同的分支逻辑执行不同的下游任务。

使用限制

注意:
1. 工作流的测试运行暂时不支持任务之间的参数传递,所以分支节点调试的时候可以在项目参数或者任务参数中指定需要测试的参数值。
2. 分支节点最多支持设置50个分支条件。
3. 分支节点暂时不支持跨项目的克隆。

分支节点使用

进入 WeData 控制台的 项目管理,在项目列表中单击数据开发,进入数据开发模块后,切换到数据开发 > 编排空间界面。
1. 在编排空间左上角新建工作流。

2. 双击工作流,在通用下面单击分支节点创建分支节点。

3. 在新建分支节点任务的对话框中输入任务名称,单击确认创建任务,进入分支节点配置界面。
4. 配置分支节点条件。单击新建分支,在弹窗中输入分支条件、分支关联任务以及描述信息。

参数名称
参数说明
分支条件
分支条件仅支持 Python 语言的逻辑判断运算,如果分支条件判断为 true,表示满足该分支条件。
分支条件中可以使用调度参数和引用父任务的参数,参考参数使用
关联任务
分支条件判断为 true 以后关联并且自动运行的关联任务。
关联任务的限制:
注意:
不允许重复选择已经选过的关联任务。
不允许分支节点的直接和间接上游任务。
分支条件判断为 false 时,关联的任务在工作流调试运行中会运行失败,
在周期调度中实例状态默认会变更为跳过执行的状态,关联的直接下游任务会也会自动变更为跳过执行的状态。
描述
分支条件的简单描述。
例如,下面的配置中,调度参数取值不同,则执行不同的任务。${flag} == 1时,运行 branch_shell_01 任务;${flag} == 2 时,运行 branch_shell_02 任务。



5. 单击保存,保存分支节点的配置。
6. 单击工具栏中的提交,提交任务到周期调度。

配置示例

1. 数据开发 > 编排空间新建工作流 DataFlow_Control_Node。
2. 在工作流 DataFlow_Control_Node 中新建 shell_node_00 的shell 的任务,任务的代码如下:
echo "hello" echo "1,2,3"
3. 在任务的调度设置 > 参数传递中配置输出当前任务参数,参数名称 flag,当前任务输出参数 $[0]。任务运行完成后,flag 取值为1。

4. 新建分支节点的下游节点,例如,分支节点下游有三个分支任务:branch_shell_01、branch_shell_02、branch_shell_03,三个任务中打印对应的任务名称,例如,三个分支 shell 的任务代码分别为:
echo "hello - branch_shell_1"
echo "hello - branch_shell_2"
echo "hello - branch_shell_3"
5. 创建分支节点 branch_node,配置分支条件和分支关联任务,并且保存任务。配置如下:
分支条件
分支关联任务
${flag} == 1
branch_shell_01
${flag} == 2
branch_shell_02
${flag} == 3
branch_shell_03



6. 任务属性 > 调度参数中定义调度参数值:flag = 1,保存任务。

7. 配置 branch_node 的上游为 shell_node_00,在参数传递中勾选引用父任务参数,设置参数名为 flag,父任务输出参数为 shell_node_00.flag。

8. 最后回到工作流中查看,工作流的配置效果如下:



9. 调试运行
9.1 在工作流工具栏上,单击工作流的测试运行,查看工作流测试的效果:
9.2 右键查看分支节点 branch_node 的运行日志,分支条件1满足,所以执行 branch_shell_01。

9.3 右键查看任务 branch_shell_02 的执行日志,由于条件不满足,branch_shell_02 跳过运行。同样,对于 branch_shell_03 任务,也由于条件不满足跳过运行。
10. 提交发布,查看周期调度
10.1 单击工作流工具栏上的提交按钮,选中当前工作流中的任务进行提交,在周期调度中可查看实例的状态。
10.2 您可以看到 branch_shell_01 是成功状态,branch_shell_03 是跳过运行状态。