功能说明

适用模块

离线开发

具体说明

INFO-不同周期任务依赖问题 - 图1


case1B任务依赖于A任务,则直接通过猛犸配置依赖即可实现,同一个小时周期内,B任务会等待A任务执行成功后开始执行;

case2A任务依赖于B任务,则通过猛犸配置依赖时,需启用同周期依赖或设置offset=-1,否则A任务默认依赖上一个小时的B任务调度情况;

case3C任务依赖于B任务,因同为小时任务,直接比较分钟数,结果与case2一致

case4D任务依赖于C任务,C任务拼接日期后,首次调度时间晚于D任务,则使用C任务的上一个周期任务调度时间拼接日期后与D任务调度时间进行比较,发现C任务的上一周期时间仍然晚于D任务调度时间,则再次C任务再次向前推移一个周期,比较后符合要求,即D任务依赖每天00:03分的C任务进行调度;

case5A任务依赖于D任务,A任务拼接日期后,首次调度时间早于D任务,则每天第一次调度A任务依赖前一天的天任务,每天第二次调度A任务依赖于当天的D任务;



以上依赖情况均可通过配置offset参数来调整默认依赖的周期数,offset=1则依赖周期向前推移一个周期;

使用示例

任务依赖的判断依据为首次调度时间:

1、相同周期则直接比较调度时间,调度任务的调度时间必须晚于依赖任务的调度时间,否则默认依赖上一个周期的依赖任务,若开启同周期依赖,则可避免因调度时间导致的依赖上一周期任务;(如果调度任务为小时级,则比较调度时间的分钟数)

2、不同周期则可使用当前调度日期拼接首次调度时间,然后进行时间比较,调度任务的调度时间必须晚于依赖任务的调度时间,否则会向前推移依赖任务的一个周期后再次进行比较,直到依赖任务的调度时间早于调度任务,不同周期任务依赖不支持同周期调度参数;

作者:常惠渊