一些任务调度的概念杂谈

任务调度

1.什么是调度任务

依赖:依赖管理是整个DAG调度的核心。调度依赖包括依赖策略和依赖区间。

依赖分为任务依赖和作业依赖,任务依赖是DAG任务本身的依赖关系,作业依赖是根据任务依赖每天的作业产生的。两者在数据存储模型上有所不同。作业依赖树存储的多了两个时间:调度时间,数据时间。

job依赖:

作业依赖:

依赖是由依赖策略和调度依赖区间组成

依赖策略 当依赖job在调度区间内有多个Task时候,需要指定依赖策略 | 依赖策略 | 描述 | |–|--| | All(*) | 调度区间内,所有依赖均成功 | | Any(+) | 调度区间内,任何一个依赖任务成功 | | First(N) | 调度区间内,前面N个依赖成功 | | Last(N) | 调度区间内,后面N个依赖成功 | | Continuous(N) | 调度区间内, 连续N个依赖成功 |

调度依赖区间

定义调度依赖的区间,通过基准时间与偏移时间来计算。 表达式 = (基准时间t, 起始偏移时间x(m), 结束偏移时间x(n)) 比如 (“yyyy-MM-dd HH:00:00”, x(n), x(m)) 基准时间t : 基准时间的格式化,默认"yyyy-MM-dd HH:mm:ss" 起始偏移时间x(n) : 基准时间"向前偏移x(n)时间,作为偏移时间的起始点。(正数向前,负数向后) 结束偏移时间x(m):偏移开始时间 向前偏移x(m)时间,作为偏移时间的结束点。(正数向前,负数向后) 时间单位 : 年 y 月M 周w 天d 时h 分m

举例子:

(y):比如 "2024-11-09 10:00:00", 2y, -1y 表示从基准时间向前偏移2年,再向后偏移1年,最终区间为 2022-11-09 10:00:002023-11-09 10:00:00

(M):例如 "2024-11-09 10:00:00", 3M, -1M 表示从基准时间向前偏移3个月,再向后偏移1个月,最终区间为 2024-08-09 10:00:002024-09-09 10:00:00

(w):例如 "2024-11-09 10:00:00", 2w, -3w 表示从基准时间向前偏移2周,再向后偏移3周,最终区间为 2024-10-26 10:00:002024-11-23 10:00:00

(d):例如 "2024-11-09 10:00:00", -7d, 4d 表示从基准时间向后偏移7天,再向前偏移4天,最终区间为 2024-11-02 10:00:002024-11-13 10:00:00

小时 (h):例如 "2024-11-09 10:00:00", -3h, 5h 表示从基准时间向后偏移3小时,再向前偏移5小时,最终区间为 2024-11-09 13:00:002024-11-09 05:00:00

作业计划 先说一下什么是作业计划,比如调度系统有1w+的job。这些job有每天执行一次或者多次,有纯依赖,有复杂依赖。一个job从第一次创建,如何知道下一次的执行时间,依赖等。就需要通过创建作业计划来完成。 作业计划有两种创建模式:

1.每天生成第二天的 ​ 2.当前任务执行初期或者完成时自动自动生成下游plan。

如果调度系统简单,直接可以使用第二种,但是对于1w+job的系统,或者某个纯依赖的上游任务很多,或者上游也是纯依赖并且图深度>10. 显然第二种会影响执行的效率。

依赖条件:是任务调度的必要条件,当一个任务被触发了,但依赖条件不满足,则必须等待。只有当所有的依赖条件都满足了,这个任务才能开始执行。

任务之间的依赖有上周期依赖、全周期依赖、连续周期依赖、断点周期依赖。

要清晰区分全周期依赖连续周期依赖,我们可以从任务需要的数据范围和依赖周期的处理角度来理解。

1.全周期依赖 (Full Cycle Dependency)

定义:全周期依赖指的是某个任务在执行时,依赖的是整个周期内的所有数据。这意味着它需要周期内的每一部分数据来得出结果。通常是针对完整周期内的每个单位时间(如一天、一个月、一年等)进行处理。

特点

  • 依赖的是完整周期的每一个数据点。

  • 适用于需要全面汇总整个周期数据的任务。

  • 通常周期的单位较大(如天、月、年等)。

例子: 假设有一个任务是计算某网站的前一天的总PV数(页面浏览量)。这个任务需要依赖前一天24小时内每个小时的数据来进行汇总。在这种情况下,任务依赖的是前一天的所有小时数据,形成了全周期依赖。这里的数据范围包括周期内的每个时间单位(每小时),任务必须等到完整的周期数据都可用后才能开始。

2.连续周期依赖 (Continuous Cycle Dependency)

定义:连续周期依赖指的是某个任

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值