更新时间:2022-02-24 GMT+08:00

Job内嵌对象

Job为作业对象,提供了获取作业中上一节点的输出消息、作业调度计划时间、作业执行时间等属性和方法。

属性和方法

表1 属性说明

属性

类型

描述

name

String

作业名称。

planTime

java.util.Date

作业调度计划时间,即周期调度配置的时间,例如每天凌晨1:01调度作业。

startTime

java.util.Date

作业执行时间,有可能与planTime同一个时间,也有可能晚于planTime(由于作业引擎繁忙等)。

eventData

String

当作业使用事件驱动调度时,从DIS通道获取的消息。

projectId

String

当前DLF所处项目ID。

表2 方法说明

方法

描述

String getNodeStatus(String nodeName)

获取指定节点运行状态,成功状态返回success,失败状态返回fail。

例如,判断节点是否运行成功,可以使用如下判断条件:

#{(Job.getNodeStatus("test")) == "success" }

String getNodeOutput(String nodeName)

获取指定节点的输出。此方法只能获取前面依赖节点的输出。目前只支持获取Rest Client节点的输出,即REST请求的返回消息。

String getParam(String key)

获取作业参数。

String getPlanTime(String pattern)

获取指定pattern的计划时间字符串,pattern为日期、时间模式,请参考日期和时间模式

String getYesterday(String pattern)

获取执行pattern的计划时间前一天的时间字符串,pattern为日期、时间模式,请参考日期和时间模式

String getLastHour(String pattern)

获取执行pattern的计划时间前一小时的时间字符串,pattern为日期、时间模式,请参考日期和时间模式

String getRunningData(String nodeName)

获取指定节点运行中记录的数据。此方法只能获取前面依赖节点的输出。当前只支持获取DLI SQL节点运行中记录的DLI作业id,例如,想要获取DLI节点第3条语句的job ID(DLI节点名为DLI_INSERT_DATA),可以这样使用:#{JSONUtil.path(Job.getRunningData("DLI_INSERT_DATA"),"jobIds[2]")}。

String getInsertJobId(String nodeName)

返回指定DLI SQL或Transform Load节点第一个DLI Insert SQL语句的作业ID,不指定参数nodeName时,获取前面一个节点第一个DLI Insert SQL语句的作业ID,如果无法获取到作业ID,返回null值。

举例

获取作业中节点名称为test的输出,EL表达式如下:

#{Job.getNodeOutput("test")}