主题
$job - 当前长任务运行上下文
$job 表示当前后台长任务或批任务的运行上下文,适用于数据加工、取数模型、指标库提取、批量校验、批量计算、知识库提取等场景。 $job 不用于页面交互、普通表达式输入上下文、工作流实例/任务上下文,这些场景仍分别使用 $event、$flow、$flowtask。 在表达式中可以通过 $job.xxx 的形式获取任务运行信息,包括:
$job.id- 任务运行ID$job.name- 任务名称$job.resId- 关联资源ID$job.userId- 执行用户ID$job.executor- 执行者,返回用户对象,可继续访问下级属性,如$job.executor.name$job.startTime- 开始时间$job.endTime- 结束时间$job.elapseTime- 执行耗时$job.retryTimes- 当前是第几次重试,首次执行为0$job.trigger- 触发方式,手动1,定时2,如果是定时执行,可以通过$scheduleRunInf获取更多计划信息。$job.taskId- 任务ID$job.taskName- 任务名称$job.taskType- 任务类型,etl数据加工,script批处理脚本,workflow工作流,afl程序流$job.params- 运行参数,返回 JSON 对象$job.extractPlan- 提取方案ID$job.extractMode- 提取模式,OverwriteAll全量覆盖,Rebuild全量重建,Append追加,Merge合并追加$job.isIncremental- 是否增量提取$job.incFrom- 增量提取起点$job.incTo- 增量提取终点$job.state- 运行状态,WAITING等待执行,或等待重试,RUNNING运行中,TIMEOUT超时,BLOCK阻塞,CANCLED取消$job.totalCount- 总行数$job.successCount- 成功数$job.failCount- 失败数$job.ignoreCount- 忽略数$job.errorSamples- 失败数据样例列表
$job.errorSamples 只用于提供轻量级失败样例,不建议在这里暴露完整失败明细或全量忽略数据。样例中的每一项通常只包含少量摘要信息,如 id、key、message、file、table 等。
示例:
ts
// 判断当前是否为定时触发
$job.trigger = 2
// 判断是否为增量提取
$job.isIncremental
// 针对不同提取方案使用不同过滤条件
if($job.extractPlan='inc', year_month > ADDDATE(today(), -3, 'm'))
// 获取任务状态
$job.state
// 获取失败样例
$job.errorSamples