任务调度
概述
任务调度支持每天、每周、每月的定时调度机制,支持小时级、分钟级的准实时调度;支持上游数据集更新即时触发的事件调度能力,防止任务空跑。
配置任务调度
操作步骤
- 点击已创建的离线开发任务,进入任务调度设置页面。
- 点击「编辑」,配置任务调度。
调度状态
选择是否开始调度
- 开启调度时,将根据调度模式配置自动触发离线开发运行;
- 关闭调度后,系统将停止自动更新;手动运行等不受调度状态影响。
调度优先级
当任务排队时,级别高的工作流在运行队列中会优先运行,相同优先级的工作流按照先进先出的顺序运行。

调度模式
-
定时调度:按照间隔时长(分)/按照间隔时长(时)/每天/每周/每月/每年配置定时策略,开启定时调度后,系统将在用户指定的时间点,按照指定的参数值,自动调起工作流运行。

-
事件调度:配置及运行机制等同于ETL中的「勾选的数据集更新后」。
选择事件调度后,支持通过数据集更新触发离线开发调度,也支持其他离线开发任务完成后触发此任务的运行。
-
选择数据集:自动获取工作流中源头ETL(即在工作流中无调度依赖,首批运行的ETL)中的所有输入数据集(如进行了输入替换,则获取并显示节点配置中替换后的数据集)。勾选工作流更新需要依赖的数据集。当勾选的数据集更新后,判断目标工作流运行条件是否满足,如符合,则自动调起工作流运行。
-
选择离线开发任务:点击添加任务,选择离线开发任务。
-
触发条件:
-
触发条件为「任何一个勾选的数据集更新后都会触发」:
- 接收到勾选数据集或者离线开发任务的更新事件后,调起工作流运行;
- 运行条件再次满足后,可重新发起工作流运行;

-
触发条件为「所有勾选的数据集都更新后触发」:
- 所有勾选的数据集或者离线开发任务均更新后,调起工作流运行:
- 运行条件再次满足后,可重新发起工作流运行;
- 勾选 「所有数据集/任务需在同一天内 (00:00:00-23:29:59) 更新」后,每日零点重新统计数据集更新情况。

-
-
开启时间限制
当定时调度选择按照间隔时长(分)/按照间隔时长(时)、或者使用事件调度时,支持选择在特定时间下运行任务,不在时间范围则不运行任务,支持配置多项,手动运行或者url触发不受时间限制影响。

跳过堆积实例
当定时调度选择按照间隔时长(分)/按照间隔时长(时)、或者使用事件调度时,支持开启跳过堆积实例开关,开启后,若某个实例因运行耗时过长导致后续实例堆积,系统将自动取消中间堆积的实例,直接执行下一个周期的实例,无需手动取消实例。

URL触发
可通过URL触发的方式实现外部触发更新,开关开启后即可得到一个用来更新该任务的URL,其中包含了该任务的ID和更新token等验证信息。

触发任务仅支持post请求,当需要对任务进行参数赋值时,需要在请求体中声明,例如对aaa和bbb两个参数时,请求体格式如下:
{"params":[
{"name":"aaa","value":"456"},
{"name":"bbb","value":"789"}
]}
没有传参时,会按照任务中参数的默认值来运行。