目前来说,任务调度系统,主流的有三种技术选型:
- Quartz
- Elastic Job
- XXL-Job
它们的大体关系是:
- Quartz 可以单独使用,通过 MySQL 实现高可用。
- Quartz 也被 Elastic Job、XXL-Job 进行封装,形成分布式调度系统。也就是说,三种技术选型,调度的内核都是 Quartz 。
- Elastic Job 是去中心化的任务调度方案,XXL-Job 是中心化的任务调度方案。
- 从易用性上来说,XXL-Job > Elastic Job 。相比来说,Elastic Job 的运维会更困难一些。
- 从性能上来说,Elastic Job > XXL-Job 。因为其去中心化,所以不会因为中心调度节点,形成性能瓶颈。当然,大多数情况下,基本能满足我们的业务场景需要。毕竟,大厂公司居少。
从学习的角度,三者都可以看看,花不了多少时间。
艿艿自己的话,采用过的方案:
- 最早使用 Quartz + MySQL ,然后自己二次封装了一些运维需要的功能。因为 Quartz 不提供运维的功能,例如说暂停任务,立即执行一次任务,任务的执行监控等等。
- 后来,调研了下 Elastic Job ,也深入了研究了源码,考虑到体量,暂时就没用。
- 再后来,看了下 XXL-Job ,觉得基本能满足自己的诉求,就目前主要用了是这个。
推荐阅读文章:
- 芋艿 《芋道 Spring Boot 定时任务入门》 对应 lab-28 。
- 芋艿 《芋道 XXL-JOB 安装部署》
- 《芋道 Spring Boot 异步任务入门》 对应 lab-29 。
1. Quartz
-
推荐~记得 b 站【收藏 + 点赞 + 投币】素质三连噢。
一共 21P ,3 个小时多。
2. Elastic Job
-
推荐~记得 b 站【收藏 + 点赞 + 投币】素质三连噢。
一共 7P ,1 个小时多。
3. XXL-Job
文档比较健全,可以直接看 http://www.xuxueli.com/xxl-job/ 。
后续艿艿如果找到视频,会进行补充~