4.7.2 补数
补数运行需要配合系统参数使用,对于某天运行失败的工作流,将补数日期选择为失败当天的日期,即可实现补充历史数据的效果。
全局参数/工作流参数/节点参数都支持使用“系统参数/时间自定义参数”进行声明赋值。(注意:系统参数/时间自定义参数都需要通过全局参数/工作流参数/节点参数的引用才能发挥作用,不支持直接使用)
系统参数/时间自定义参数均与时间相关,可以灵活支持工作流定义的调度运行;
系统参数:${system.biz.date}、${system.biz.curdate}、${system.datetime};
时间自定义参数:采用 $[...] 格式,$[yyyyMMddHHmmss] 是可以任意分解组合的,比如:$[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd] 等;
系统参数/时间自定义参数在常规运行和补数运行中发挥的作用:
系统参数/时间自定义参数 | 常规运行 | 补数运行 | 格式 |
${system.biz.date} | 运行时间的前一天 | 补数时间的前一天 | yyyyMMdd |
${system.biz.curdate} | 运行时间的当天 | 补数时间的当天 | yyyyMMdd |
${system.datetime} | 运行时间的当天 | 补数时间的当天 | yyyyMMddHHmmss |
$[yyyyMMdd] | 运行时间的当天 | 补数时间的当天 | -- |
时间自定义参数同样支持:
时间自定义参数其他用法 | 含义 |
$[add_months(yyyyMMdd,12*N)] | 后 N 年 |
$[add_months(yyyyMMdd,-12*N)] | 前 N 年 |
$[add_months(yyyyMMdd,N)] | 后 N 月 |
$[add_months(yyyyMMdd,-N)] | 前 N 月 |
$[yyyyMMdd+7*N] | 后 N 周 |
$[yyyyMMdd-7*N] | 前 N 周 |
$[yyyyMMdd+N] | 后 N 天 |
$[yyyyMMdd-N] | 前 N 天 |
$[HHmmss+N/24] | 后 N 小时 |
$[HHmmss-N/24] | 前 N 小时 |
$[HHmmss+N/24/60] | 后 N 分钟 |
$[HHmmss-N/24/60] | 前 N 分钟 |
运行工作流定义时,支持打开补数开关:
选定补数日期后,将运行指定日期的工作流定义
可以选择补数时间范围(目前只支持针对连续的天进行补数,eg:要补10月1号到10月10号的数据)
补数执行模式有串行执行、并行执行
串行模式下,补数会从10月1号到10月10号依次执行;
并行模式下,会同时执行10月1号到10月10号的任务。
具体使用场景如下:
工作流中使用了如下参数:yesterday=${system.biz.date},today=${system.biz.curdate};如果该工作流在2020/10/02运行,则yesterday=2020/10/01,today=2020/10/02
如果该工作流在2020/10/02运行失败,几天后需要重新对2020/10/02的工作流进行补数,需要将补数日期选择为2020/10/02,即可实现补数运行时:yesterday=2020/10/01,today=2020/10/02