一、支持的调度周期说明
Dataphin实现逻辑:
- Dataphin目前基于cron表达式实现调度周期的配置
- 调度配置页面,前端根据用户的配置,根据cron表达式生成实例时间预览
- 后台执行时,后端根据cron表达式解析结果生成实例
关于cron表达式的简介参见 附录 章节。
不同调度配置配置说明:
- 小时/分钟调度:每隔一段固定时间(每N小时或者N分钟)运行一次
- 支持指定时间点(整点调度)和时间段调度
- 时间点:整点调度
- 时间段:支持设置开始时间(支持选择到具体分钟)和结束时间(仅支持选择到小时,cron表达式限制),可设置调度间隔
- 日调度:每日在固定时间开始运行
- 支持设置每日起调时间
- 周/月调度:在设置的调度日期真正运行实例,非调度日期生成空跑成功实例
- 支持指定每周固定周几调度
- 支持设置调度日期当前的起调时间
不同类型任务调度周期支持说明:
- 集成/代码任务:支持分钟/小时/日/周/月调度
- 逻辑表任务:2.9.x版本仅支持日及以上周期调度,且固定每日0点起调;后续版本将支持小时/分钟调度,支持设置起调时间
- 指标:根据设置的统计周期自动识别调度周期(如图,bizdate代表日调度,m代表月调度,y代表年调度);2.9.x版本仅支持日及以上周期调度,且固定每日0点起调;后续版本将支持小时/分钟调度
二、cron表达式配置解析
- ①从0点30分开始,每隔30分钟调度一次
结果解释:从0点30分开始,每隔30分钟调度1次;0点30分第一次调度,隔30min是60分,不在范围内,所以会从头再开始计算,就到了01:30,真正实现的效果是每个小时的30分这个节点调度一次,所以会生成24个实例
- ②从0点0分开始,每隔30分钟调度一次
结果解释:0点0分开始,每隔30分钟调度1次;0点0分第一次调度,隔30min是0点30分,在范围内;再隔30min是60分,不在范围内,所以会从头再开始计算,就到了01:00,真正实现的效果是每个小时的0分和30分节点会调度一次,所以会生成48个实例
附录:cron表达式说明
- 背景输入:
cron在线生成器:https://www.freeformatter.com/cron-expression-generator-quartz.html
https://www.cnblogs.com/superman66/p/4565723.html
总结:
- 从起始时间开始,按照设置的步长进行计算,如果结算结果超过了每个位置的范围值就会跳过,重新开始计算
- 如果起始时间>=30分,每隔30min调度一次,则实现的效果只能是每小时调度一次