1. 概述编辑
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.0.26 | 1)新增「超时限制」和「失败重试」功能 2)4.0.26 版本之前,「结果通知」需要「开启调度」才能设置;4.0.26 版本及之后,「结果通知」可以单独开启 |
1.2 功能简介
调度配置界面如下图所示:
开启调度:可设置任务执行频率,定期自动运行定时任务,以保证数据能够及时更新。详情可参见本文 2.1 节内容。
失败重试:由于当时的网络波动或者其他原因,导致任务运行中断,过段时间重新运行任务即可成功执行。针对此场景,可在「失败重试」中设置重跑次数和两次重跑之间的间隔,任务在失败之后会进行自动重试。详情可参见本文 2.2 节内容。
超时限制:当一个任务长时间运行,该任务可能属于非正常状态,且会导致资源的占用。针对此场景,可在「超时限制」中配置任务的超时时间,运行时间超过设置的时间后正在执行的任务会被强制杀死。详情可参见本文 2.3 节内容。
通知方式:任务执行失败后,可通知相关人员任务执失败。详情可参见本文 2.4 节内容。
2. 配置介绍编辑
2.1 开启调度
在「开启调度」中,可设置任务执行频率,定期自动运行定时任务,以保证数据能够及时更新。
注:调度配置的时间跟随服务器时间。
调度功能默认是关闭状态,需要手动开启。调度开启后,可以对这个调度的开始时间、执行频率、结束时间进行设置。如下图所示:
其中「执行频率」有四个可选的设置项。每个设置的说明如下表所示:
执行频率 | 说明 | 对应结束时间 |
---|---|---|
只执行一次 | 在调度开始后,该任务只运行一次 | 无需设置结束时间 |
简单重复执行 | 在调度生效过程中,该任务会简单重复运行 例如:每天运行一次、每周运行一次等 | 结束时间有三种选项:无限期、设定结束时间、额外重复执行次数 |
明细频率设置 | 可进行细化的间隔时间设置 例如可设置:每月的 3 号和 13 号各运行一次 比「简单重复执行」功能更强大 | 结束时间有两种选项:无限期、设定结束时间 |
表达式设定 | 利用公式设定「特定时间」 设定方式可参考:Cron表达式设置 | 结束时间有两种选项:无限期、设定结束时间 |
注1:设置执行频率后,每次任务执行完毕后才会开始下次执行,在此之前,任务处于排队状态。
注2:设置频率后,若某一次定时任务执行失败,等到下次执行时间,依然会自动执行任务。
2.2 失败重试
由于当时的网络波动或者其他原因,导致任务运行中断,过段时间重新运行任务即可成功执行。针对此场景,可在「失败重试」中设置重跑次数和两次重跑之间的间隔,任务在失败之后会进行自动重试。
「失败重试」功能默认是关闭状态,需要手动开启。
设置项 | 说明 |
---|---|
重跑次数 | 默认值为 3 次,最大值为 100 次 |
每次间隔 | 默认值为 2 分钟,最大值为 60 分钟,粒度为分钟 |
注意点:
1)「失败重试」逻辑:重试失败节点及下游节点,任务当前状态为运行中。是针对单个节点的失败重试设置
2)发生网络中断等情况造成无法与数据库建立连接,导致追加写入的数据仅写了一半,但是在重跑的时候会因为主键冲突而报错或者追加写入重复数据。
3)若 调用任务 中设置了失败重试,是重新执行整个子任务,而非子任务的失败节点。
4)若定时任务中包括循环容器,且设置了失败重试:
若失败节点在循环容器中,将重跑整个循环容器。
若失败节点在循环容器中,若一共循环 5 次,循环第二次时失败,将从第一次循环开始执行。
5)若任务设置了失败重跑,重跑次数设置为 3 次,则 3 次都失败后,该任务才被判定为失败。
如下图所示,连线执行判断为「数据同步」节点失败再执行「消息通知」。若失败节点为「数据同步」节点,重跑次数设置为 3 次,若 3 次「数据同步」节点都失败,则「消息通知」才生效。
2.3 超时限制
当一个任务长时间运行,该任务可能属于非正常状态,且会导致资源的占用。针对此场景,可在「超时限制」中配置任务的超时时间,运行时间超过设置的时间后正在执行的任务会被强制杀死。
「超时限制」功能默认是关闭状态,需要手动开启。默认值为 1 小时,最大值为 48 小时。
「超时限制」逻辑:
用户若配置了「失败重试」,「失败重试」会生效。
用户没有配置「失败重试」,任务超时则视为任务失败,前端日志显示超时失败。
2.4 结果通知
任务执行失败后,可通知相关人员任务执失败。
「结果通知」功能默认是关闭状态,需要手动开启。
注:消息通知仅在任务执行失败时,才会通知,任务执行成功不会通知。
可以通过三个渠道发送任务执行结果:
通知方式 | 说明 |
---|---|
短信通知 | 若要使用短信通知,用户需要先开启 短信 服务 示例: |
平台消息 | 开启平台消息后,对应负责人可在 平台消息 上查看到运行结果 示例: |
邮件提醒 | 示例: |