更新时间:2022-08-17 GMT+08:00

For Each

功能

该节点可以指定一个子作业循环执行,并支持用一个数据集对子作业中的变量进行循环替换。

参数

用户可参考表1配置For Each节点的参数。

表1 属性参数

参数

是否必选

说明

节点名称

节点名称,可以包含中文、英文字母、数字、“_”“-”“/”“<”“>”等各类特殊字符,长度为1~128个字符。

循环执行的子作业

选择需要循环执行的子作业。

数据集

For循环算子需要定义一个数据集,这个数据集用来循环替换子作业中的变量,数据集的一行数据会对应一个子作业实例。数据集的来源包括:
  • 来自于上游节点的输出。例如DLI SQL、Hive SQL、Spark SQL的select语句,或者Shell节点的echo等。使用EL表达式为:#{Job.getNodeOutput('preNodeName')},即前一个节点的输出值。
  • 来自于给定的数组。如一维数组:[['001'],['002'],['003']] 。

子作业并发数

循环产生的子作业可以并发执行,您可设置并发数。

子作业实例名称后缀

For循环生成的子任务名称:For循环节点名称 + 下划线 + 后缀。

后缀可配置,如果不配置,则按照数字顺序依次递增。

作业运行参数

仅当子作业配置作业参数后,出现该参数。
  • 节点属性中子作业参数配置为空时,子作业使用自身参数变量执行。
  • 节点属性中子作业参数配置后,将使用配置参数变量执行。节点属性中子作业参数配置的方法或者EL表达式,将根据父作业的环境变量读取替换。
表2 高级参数

参数

是否必选

说明

节点执行的最长时间

设置节点执行的超时时间,如果节点配置了重试,在超时时间内未执行完成,该节点将不会再重试,直接置为失败状态。

失败重试

节点执行失败后,是否重新执行节点

  • 是:重新执行节点,请配置以下参数。
    • 最大重试次数
    • 重试间隔时间(秒)
  • 否:默认值,不重新执行节点
说明:

如果作业节点配置了重试,并且配置了超时时间,该节点执行超时后将不会再重试,直接置为失败状态。

失败策略

节点执行失败后的操作:

  • 终止当前作业执行计划:停止当前作业运行,当前作业实例状态显示为“失败”。
  • 继续执行下一节点:忽略当前节点失败,当前作业实例状态显示为“忽略失败成功”。
  • 挂起当前作业执行计划:暂停当前作业运行,当前作业实例状态显示为“等待运行”。
  • 终止后续节点执行计划:停止后续节点的运行,当前作业实例状态显示为“失败”。

空跑

如果勾选了空跑,该节点不会实际执行,将直接返回成功。