DataWorks支持分钟、小时、日、周、月、年等类型的调度任务互相依赖,调度类型不同,任务执行的周期数不同。任务各周期是通过实例的方式执行,当上下游调度依赖的类型不同时,您可通过该文档了解上下游各周期实例如何挂载依赖,即上下游任务不同周期实例的依赖情况。
背景信息
- DataWorks中,调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),通过实例的方式运行任务。周期任务设置的依赖关系,其本质是任务间所生成实例的依赖。上下游任务的调度类型不同,其生成的周期实例数及实例的依赖情况不同。
- DataWorks支持多种调度依赖场景,不同场景的调度任务,可选择同周期依赖或依赖上一周期。同周期依赖及依赖上一周期,详情请参见配置同周期调度依赖、配置依赖上一周期(跨周期依赖)。
序号 | 描述 | 相关文档 |
---|---|---|
1 | DataWorks支持多种调度类型(即分钟、小时、天、周、月、年),当上下游调度类型不一致时,DataWorks根据任务定时运行时间的就近原则设置调度依赖。
说明
|
挂载依赖:就近原则 |
2 | DataWorks上任务一旦设置依赖,即表示上下游任务间存在数据依赖。无论下游任务定时运行时间为几点,均需等上游任务执行完成后,下游才满足可执行条件。 | 依赖关系对任务执行的影响 |
3 | 您可通过具体场景示例,进一步理解设置依赖的就近原则。 | 复杂依赖场景汇总 场景包括:
|
挂载依赖:就近原则
DataWorks的周期任务运行时会生成多个周期实例,下游周期实例会依赖上游周期实例(该上游实例需在当前下游实例的定时运行时间之前产生)。
场景 | 说明 | 示意图 |
---|---|---|
小时、分钟任务互相依赖场景 |
任务依赖与周期实例的定时时间有关
|
小时、分钟任务互相依赖的细分场景概览如下图。
![]() 小时任务依赖小时任务示例如下图。
![]() |
任务依赖与周期实例的定时时间无关 小时任务依赖小时任务,或分钟任务依赖分钟任务,并且上下游节点的周期数(即当天产生的实例个数)一致,将按照周期数一一对应,设置依赖关系。 |
||
天任务依赖小时或分钟任务 |
|
![]() |
依赖关系对任务执行的影响
下游任务一旦挂载依赖,若上游任务非运行成功状态,即使到达下游任务的定时运行时间,该任务也不会执行。
- 天任务A:定时运行时间设置为
07:00
。 - 小时任务B:定时运行时间设置为
00:00
、08:00
、16:00
。
00:00
,该任务也不会运行。下游任务B的最早实际运行时间为07:00
。
附录:复杂依赖场景汇总
小时任务依赖其他任务
细分场景 | 依赖及运行说明 | 示意图 |
---|---|---|
小时任务依赖小时任务 |
|
![]() |
小时任务依赖天任务 |
|
![]() |
小时任务依赖分钟任务 |
|
![]() |
天任务依赖其他任务
细分场景 | 依赖与运行情况 | 示意图 |
---|---|---|
天任务依赖同周期天任务 |
|
![]() |
天任务依赖当天小时任务 |
|
![]() |
天任务依赖昨天的小时或分钟任务 |
|
以天任务依赖昨天的小时任务示例。![]() |
分钟任务依赖其他任务
细分场景 | 依赖说明 | 示意图 |
---|---|---|
分钟任务依赖小时任务 |
|
![]() |
分钟任务依赖天任务 |
|
![]() |
其他任务依赖周、月、年任务
当天、小时、分钟任务依赖周、月、年任务时,周、月、年调度任务在非调度时间内会生成空跑实例。该实例不会真实跑数据,不占用资源,也不阻塞下游任务执行。