IF ELSE 条件任务(条件节点)用于在工作流中实现分支逻辑:根据条件计算结果,决定下游任务链路是否执行。
概述
条件节点常用于:
按时间维度触发不同业务流程(如季度末走结算流程,月末走对账流程)。
按上游运行结果选择不同处理路径(如成功走 A 链路,失败走告警链路)。
按外部参数动态决定执行内容。
前提条件
已是工作流所有者或具备「管理」权限。
工作流中已存在或将创建用于条件结果分支的下游任务。
操作步骤
步骤 1:创建条件节点
1. 在工作流画布单击 + 添加任务 。
2. 任务类型选择 IF ELSE 。
步骤 2:配置条件
条件节点支持配置多组条件,每组条件关联不同的下游任务。
添加条件
1. 任务配置面板的 条件配置 区域单击 添加按钮 ,弹出条件配置弹窗。
2. 选择 简单模式 或 高级模式 。
3. 配置条件后单击 确定 。
简单模式
参数 | 说明 | 是否必填 |
参数值 1 | 输入框,支持常数和系统内置参数(如 {{workflow.start_time.iso_date}}、{{tasks.<name>.values.<key>}})。 | 是 |
运算符 | 单选下拉: == / != / > / < / >= / <=。 | 是 |
参数值 2 | 输入框,规则同参数值 1。 | 是 |
支持的运算符:
运算符 | 名称 | 说明 |
== | 等于 | 字符串比较 |
!= | 不等于 | 字符串比较 |
> | 大于 | 数值比较(浮点) |
< | 小于 | 数值比较(浮点) |
>= | 大于等于 | 数值比较 |
<= | 小于等于 | 数值比较 |
提示
使用
== / != 时参数值按字符串处理;使用 > / < / >= / <= 时按数值(浮点)处理。高级模式
输入框中以 Python 风格表达式描述条件,最长 512 字符,例如:
{{tasks.upstream.values.month}} == 12 and {{workflow.start_time.day}} == 31
关联下游任务
参数 | 说明 | 是否必填 |
条件关联任务 | 多选下拉,选项为当前工作流下除当前任务外的所有任务。 | 是 |
条件描述 | 选填,最长 512 字符。 | 否 |
注意
关联任务不能选择条件节点的直接或间接上游,否则提交时会被拦截并提示「任务图不能包含循环依赖」。同一关联任务不能在多个条件中重复使用。
步骤 3:在画布连线建立条件分支
除任务配置面板外,画布上为条件节点连接下游时也会触发条件配置:
1. 从条件节点连接到下游任务。
2. 系统自动弹出条件配置弹窗,条件关联任务 默认选中刚连接的下游。
3. 完成条件配置后单击 确定 。
步骤 4:管理条件列表
条件配置区域以列表展示所有已配置条件:
字段 | 说明 |
条件编号 | 系统生成 |
条件 | 简单模式或高级模式表达式 |
条件关联任务 | 关联的下游任务名称 |
条件描述 | 用户填写的描述 |
操作 | 编辑 / 删除 |
最多配置 50 条条件,超出后添加按钮置灰。
步骤 5:上游依赖、参数、监控指标、告警、失败与超时策略
步骤 6:保存
单击 创建任务 或 保存任务 。
提示
保存任务时,对于在条件配置中关联的下游任务,如果该任务未将条件节点配置为上游,系统会自动添加上游依赖。
运行行为
条件节点本身
满足条件:节点状态为「成功」,按下游任务的运行条件继续触发执行。
不满足条件:节点状态为「成功」(条件计算正常),但 不满足条件分支下的下游节点(含间接下游)会自动置为「排除运行」状态 。
下游任务运行详情
不满足条件被排除运行的任务在运行详情页展示:
当前节点因上游条件节点 "task_name"、"task_name_2" 不满足条件,自动排除运行
单独运行、重跑
条件节点支持单独运行或重跑,运行结果正常展示。条件单独运行不会触发下游执行。
条件节点运行详情
条件节点运行详情页展示条件列表:
列 | 说明 |
条件编号 | 与配置时一致 |
条件 | 原始条件 |
条件解析 | 参数替换后的实际条件,例如 12 == 12 |
条件关联任务 | 关联任务名(点击跳转配置页) |
条件结果 | true / false(运行成功后展示) |
如条件节点本身失败:
条件节点运行失败,失败原因:{关键错误日志}
使用限制
单条件节点最多配置 50 条条件。
关联任务不能选择直接或间接上游(避免循环依赖)。
同一下游任务不能在多个条件中重复关联。
条件高级模式表达式最长 512 字符。
常见问题
Q1:条件节点的上游有 SQL 任务,如何在条件中使用 SQL 输出?
通过参数引用:
{{tasks.upstream_sql.output.first_row.month}} == 12
Q2:条件不满足时下游被「排除运行」,更下游的任务能继续执行吗?
如果更下游的任务上游均被排除运行,按下游任务的「运行条件」决定。例如运行条件设为「全部完成」会触发执行;设为「全部成功」会进入「上游失败」状态。
通常建议在分支汇聚点使用「没有失败且至少一个成功」运行条件,避免排除运行向下传播。
Q3:高级模式中支持哪些语法?
高级模式支持 Python 条件表达式语法,包括:
比较运算符:
==、!=、<、>、<=、>=逻辑运算符:
and、or、not括号
() 用于分组Python 内置函数(如
len()、str()、int() 等)建议尽量保持简洁,复杂逻辑可拆为多条简单条件。
相关文档
配置任务