编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

XXL-Job 任务依赖能力验证及各框架对比分析

wxchong 2024-09-25 22:56:58 开源技术 14 ℃ 0 评论

背景

三个任务调度框架 XXL-Job、Azkaban、ElasticJob ,对于任务链的支持情况如何呢?本文整理验证 XXL-Job 的子任务的结果。

三种任务调度框架各有优势,最优秀的是 Azkaban 灵活的任务编排能力,XXL-Job 只支持简单的单向链条任务,ElasticJob 不支持子任务,只能通过任务监听器迂回实现。

XXL-Job 的任务依赖


任务 7 配置了一个子任务,当前任务执行完成后,会执行子任务。


各自任务执行器执行完成后,继续触发了任务 2:

依赖多个子任务

上面的任务 7 添加两个任务依赖 2,4,各个任务特征为:

  • 父任务 7 ,广播任务
  • 子任务 2,单次任务,只第一个执行
  • 子任务 4,广播任务

那么子任务的调度,还是按子任务的调度策略执行的:


任务 2 单次执行,被分片任务 7 触发两次;任务 4 是广播执行,被分片任务 7 在两个调度器上都分别触发一次广播行为,即最终执行 4 次。

对比 Azkaban

XXL-Job:广播分片,支持子任务,不支持前置任务;简单的单链条的任务支持。例如:A->B->C-> D。

Azkaban:不支持分片,具有丰富的任务编排能力。


Azkaban 仅仅通过简单地
.job 配置就可以编写丰富的任务链,还是挺强大的。

启示录

XXL-Job 很简单,支持子任务,但是子任务配置时需要考虑业务场景,是否分片,如果是分片任务,可能会多次调度,执行次数是幂次增加的。

Azkaban 通过 Job 描述就能编排任务,真的很强大。

想要一个既简单又支持丰富任务编排的任务调度框架,估计是找不到的了。想要整合 XXL-Job 和 Azkaban 也不太现实,毕竟 Azkaban 的核心功能就是 DAG 啊!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表