使用 If/else 任务向作业添加分支逻辑

使用 If/else condition 任务向任务图添加布尔条件逻辑。 这些任务由布尔运算符和一对操作数组成,其中操作数可以使用配置的或动态参数或任务值来引用作业或任务状态。 请参阅参数化作业

例如,假设你有一个名为 process_records 的任务,该任务在名为 bad_records 的值中维护无效记录的计数,并且你希望在遇到无效记录时进行分支处理。 要将此逻辑添加到工作流,可以使用表达式(例如 {{tasks.process_records.values.bad_records}} > 0)创建 If/else condition 任务。 然后,可以根据条件的结果添加依赖任务。

在包含 If/else condition 任务的作业运行完成后,可以在 UI 中查看作业运行详细信息时,查看结果和表达式评估详细信息。 请参阅查看作业运行详细信息

注意

  • 数字和非数字值的处理方式不同,具体取决于布尔运算符:
    • ==!= 运算符可对其操作数执行字符串比较。 例如,12.0 == 12 计算为 false。
    • >>=<= 运算符可对其操作数执行数值比较。 例如,12.0 >= 12 计算结果为 true,10.0 >= 12 则计算为 false。
    • 在引用操作数中的任务值时,仅允许使用数值、字符串和布尔值。 任何其他类型将会导致条件表达式失败。 非数值类型将会序列化为字符串,并被视为 If/else condition 表达式中的字符串。 例如,如果任务值设置为布尔值,则会将其序列化为 "true""false"

配置 If/else 任务

通过执行以下操作,从作业 UI 中的“任务”选项卡添加 If/else condition 任务:

  1. 在“类型”下拉菜单中,选择“If/else condition”。
  2. 在第一个“条件”文本框中,输入要评估的操作数。 操作数可以引用以下任一项:
    • 作业参数变量。
    • 任务参数变量。
    • 任务值。
  3. 从下拉菜单中选择布尔运算符。
  4. 在第二个“条件”文本框中,输入用于计算条件的值。
  5. 单击“保存任务”。

配置 If/else 条件的依赖项

通过执行以下操作,从“任务”选项卡中的任务图配置 If/else condition 任务的依赖项:

  1. 选择任务图中的 If/else condition 任务,然后单击“+ 添加任务”
  2. 输入任务的详细信息。 “依赖于”字段默认为 <task-name> (true),其中 <task-name>If/else condition 任务的名称。
    • 选择 <task-name> (false) 以配置在条件评估结果为 false 时运行的任务。

可以根据 If/else condition 的结果将多个任务配置为以串行或并行方式运行。 如果需要在上游任务失败时进行条件化运行,可考虑配置 Run if dependencies。 请参阅配置任务依赖项