Switch

Switch是一个条件判断节点,依据全局变量的值和用户所编写的表达式判断结果执行对应分支。

创建任务

拖动工具栏中的Switch - 图1任务节点到画板中即能完成任务创建,注意switch任务创建后,要先配置上下游,才能配置任务分支的参数

任务参数

  • 节点名称:一个工作流定义中的节点名称是唯一的。
  • 运行标志:标识这个节点是否能正常调度,如果不需要执行,可以打开禁止执行开关。
  • 描述信息:描述该节点的功能。
  • 任务优先级:worker线程数不足时,根据优先级从高到低依次执行,优先级一样时根据先进先出原则执行。
  • Worker分组:任务分配给worker组的机器机执行,选择Default,会随机选择一台worker机执行。
  • 失败重试次数:任务失败重新提交的次数,支持下拉和手填。
  • 失败重试间隔:任务失败重新提交任务的时间间隔,支持下拉和手填。
  • 超时告警:勾选超时告警、超时失败,当任务超过”超时时长”后,会发送告警邮件并且任务执行失败.
  • 条件:可以为switch任务配置多个条件,当条件满足时,就会执行指定的分支,可以配置多个不同的条件来满足不同的业务
  • 分支流转:默认的流转内容,当条件中的内容为全部不符合要求时,则运行分支流转中指定的分支

详细流程

假设我们三个任务,其依赖关系是 A -> B -> [C, D] 其中task_a是shell任务,task_b是switch任务

  • 任务A中通过全局变量定义了名为id的全局变量,声明方式为${setValue(id=1)}
  • 任务B增加条件,使用上游声明的全局变量实现条件判断(注意switch运行时存在的全局变量就行,意味着可以是非直接上游产生的全局变量)。下面我们想要实现当id为1时,运行任务C,其他运行任务D
    • 配置当全局变量id=1时,运行任务C。则在任务B的条件中编辑${id} == 1,分支流转选择C
    • 对于其他任务,在分支流转中选择D

最终switch任务的配置如下

task-switch-configure

相关任务

conditionCondition节点主要依据上游节点的执行状态(成功、失败)执行对应分支。Switch节点主要依据全局变量的值和用户所编写的表达式判断结果执行对应分支