1. 概念
FineDataLink 提供多种灵活的调度方式,包括定时调度、调用任务和事件调度等,满足不同业务场景的自动化需求。
本文对各种调度方式的使用场景进行说明,帮助您根据实际业务需求选择合适的调度方案。
2. 调度方案简介
注:定时任务中可搭配 连线执行判断 或者 条件分支 来决定是否执行后续节点;例如上游节点执行失败,仍需要执行下游节点,可使用连线判断功能。
| 调度方案 | 说明 | 常见场景 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 调用任务 | 特点: 父任务执行,拉起子任务执行 多个子任务在父任务中按顺序执行 简介: 每次父任务执行时,会拉起子任务的执行,涉及到多个定时任务 例如下图,「数据同步」节点执行后,会拉起「测试8」这个定时任务的执行
| 希望可以在当前定时任务中调用平台内其他定时任务,被调用的任务被放到当前任务里编排 注:若用户希望定时任务重复跑两次,可设计两个相同的定时任务,在一个定时任务中使用「调用节点」调用另一个定时任务 | ||||||||||||
| 定时调度 | 特点: 单个定时任务定期执行 执行时间说明:
若想设置为每年执行一次:
注:尽量等一次调度跑完,再拉起下一次,不然会有任务排队的问题;定时调度最快可设置一分钟执行一次 注:若工程中多个任务都设置了定时调度,任务的执行时间尽量不要放在一起,否则会造成资源不够任务排队的情况 | 数据周期性变化 比如每天会新增数据,希望将新增数据定期同步到目标表中 | ||||||||||||
| 事件调度 | 特点: 涉及到多个定时任务,且任务间有依赖关系 简介:
| 1)任务 b 依赖任务 a,任务a在白天执行,希望a任务执行完在晚上再执行b任务,而不是上游任务 a 执行完立即执行任务 b,避免造成资源紧张的问题 2)希望a、b任务执行完再执行c任务 | ||||||||||||
| 通过接口调用定时任务执行 | 特点: 高度灵活,根据业务需要控制更新数据时机 简介: FVS模板中,点击「刷新」按钮执行定时任务,更新图表数据
| 执行过程中需要基于外部事件或者触发器,例如
| ||||||||||||
| 混合调度 | 以上策略基于实际的业务需要进行组合,满足数据处理需求 | |||||||||||||
3. 调度方案选择
4. 任务间调用关系
多个定时任务间有依赖关系,给这些定时任务设置完调用频率后,后期运维时,需要查看这些任务间的依赖关系。
若定时任务设置了事件调度,参考本文 4.2 节查看任务间依赖关系;若只使用到「调用任务」节点,参考本文 4.1 节查看任务间依赖关系。
注:表间关系可查看 血缘分析 文档。
4.1 调用任务
定时任务的开发界面中,点击「调用关系」按钮,可查看父子任务层级调用关系。如下图所示:
详情请参见:调用关系

4.2 事件调度
打开一个定时任务的 事件调度,且开启「旁系任务组」按钮,将展示该任务组有关联的任务组,和其上下游任务组的所有关联任务组。如下图所示:

5. 终止调度
5.1 关闭下次调度
若实例已经开始构建,该方法不会影响这个实例。
可在「运维中心>定时任务>调度计划」中,关闭「调度状态」按钮。如下图所示:

5.2 终止部分/所有实例
可在 运行记录 中终止单个/多个实例的运行。
适用于要终止的实例不多的场景。
5.3 终止所有正在运行的实例
若要终止的实例较多,觉得手动终止较麻烦,可重启 FDL 工程,重启后:
定时任务运行中的实例都会停,到达下次运行时间后会再次执行。
实时管道任务会自动启动。
6. 内容扩展
1)多个有依赖的定时任务调度配置方案 提供通过「定时调度」和「事件调度」保证多个定时任务协调运行的示例,供用户参考。
2)用户希望一个定时任务中,某个节点运行失败,不影响后续节点的运行,此时可使用 连线执行判断 功能,设置「无条件执行」。如下图所示:
两个节点若用连线连接,执行关系默认为「成功时执行」,用户可根据实际需要调整执行条件。

