Dataphin支持将周期任务的调度周期设置为分钟、小时、日、周、月、年调度类型中的其中一种类型。各调度类型的周期任务支持互相依赖,调度类型不同,任务执行的周期不同。任务各周期是通过实例的方式执行,当上下游调度依赖的类型不同时,您可参考本文了解上下游任务不同周期实例的依赖情况。
背景信息
配置调度依赖前,建议您需先了解以下内容。
Dataphin中,周期任务会根据调度周期生成相应的周期实例(例如,小时调度任务每天会根据调度周期生成相应数量的小时实例),并通过实例的方式运行任务。周期任务之间所设置的调度依赖,其本质是任务间所生成实例的依赖。上下游任务的调度周期不同,其生成的实例之间依赖情况不同。
Dataphin支持多种调度依赖场景,不同场景的调度任务,可选择本周期依赖或依赖上周期。
实例开始运行条件。
依赖的上游实例全部运行成功,即变成等待调度时间或等待调度资源状态。到达当前实例的定时运行时间,且已分配调度资源 ,即变成运行中状态。
依赖场景
不同周期任务的细分依赖场景及其规则如下。
下游任务的定时运行时间若早于上游任务,即便到达下游任务的定时时间,该任务也不会调度,需等待上游任务运行完成后才会调度运行。
本文图示说明
图示 | 含义 |
上游周期实例 | |
下游周期实例 | |
同周期依赖 | |
跨周期依赖 |
小时任务依赖小时任务
依赖规则
下游小时任务依赖上游定时运行时间>=自己定时运行时间最近一个实例。
场景1:上游下游任务同周期依赖,起调时间相同。
上游小时任务和下游小时任务同周期依赖,且都是每个整点起调。则下游1点的实例依赖上游1点的实例,下游2点的实例依赖上游2点的实例,依次类推。
场景2:上游下游任务跨周期依赖,起调时间相同。
如果需要实现下游2点的实例依赖上游1点的实例,可以通过配置下游任务依赖上游任务的上周期实现(默认下游任务2点的实例依赖上游任务2点的实例,设置为依赖上周期之后,即依赖上游任务2点实例的上周期,也就是1点实例,以实现下游任务2点的实例依赖上游任务1点的实例的场景)。
场景3:上游下游任务同周期依赖,起调时间不同。
同周期依赖,上游小时任务是每个整点起调,下游小时任务是每小时的05分开始起调,则下游0点05分的实例依赖上游1点的实例,下游1点15分的实例依赖上游2点的实例,依次类推。
场景4:上游下游任务同周期依赖,起调时间和调度间隔不同。
不同批次调度,同周期依赖,上游小时任务是每隔4个小时整点起调,下游小时任务是每个小时的15分开始起调,则下游0点15分、1点15分、2点15分、3点15分的实例,都依赖上游4点的实例,依次类推。
天任务依赖小时任务
依赖规则
下游天任务和上游小时任务是同周期依赖:依赖上游定时运行时间>=自己定时运行时间最近一个实例。上游小时任务如果是自依赖(即小时任务本身配置了依赖上周期), 则会根据定时运行时间依赖最近一个周期的上游小时任务。
下游天任务和上游小时任务是跨周期依赖:上游小时任务如果是自依赖, 则会依赖上游前一天最后一个小时实例。上游小时任务如果不是自依赖, 则会依赖上游前一天所有的小时实例。
场景1:天任务和小时任务是同周期依赖,且小时任务自依赖。
上游小时任务固定整点调度,下游天实例定时每日5点0分起调,则天实例会依赖上游5点0分的小时实例;如果下游天实例定时每日5点01分起调,则天实例会依赖上游6点0分的小时实例)。
场景2:天任务和小时任务是同周期依赖,且小时任务非自依赖
上游小时任务如果不是自依赖(即小时任务本身没有配置依赖上周期), 则会依赖上游所有的小时实例。
场景3:天任务和小时任务是跨周期依赖,且小时任务自依赖
上游小时任务如果是自依赖, 则会依赖上游前一天最后一个小时实例。
场景4:天任务和小时任务是跨周期依赖,且小时任务非自依赖
上游小时任务如果不是自依赖, 则会依赖上游前一天所有的小时实例。
- 本页导读 (0)