code-learning/学习指南/30-任务调度学习指南.md

49 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 精尽任务调度学习指南
目前来说,任务调度系统,主流的有三种技术选型:
- 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 。因为其去中心化,所以不会因为中心调度节点,形成性能瓶颈。当然,大多数情况下,基本能满足我们的业务场景需要。毕竟,大厂公司居少。
从学习的角度,三者都可以看看,花不了多少时间。
艿艿自己的话,采用过的方案:
- 1. 最早使用 Quartz + MySQL ,然后自己二次封装了一些运维需要的功能。因为 Quartz 不提供运维的功能,例如说暂停任务,立即执行一次任务,任务的执行监控等等。
- 1. 后来,调研了下 Elastic Job ,也深入了研究了源码,考虑到体量,暂时就没用。
- 1. 再后来,看了下 XXL-Job ,觉得基本能满足自己的诉求,就目前主要用了是这个。
推荐阅读文章:
- 芋艿 [《芋道 Spring Boot 定时任务入门》](http://www.iocoder.cn/Spring-Boot/Job/?vip) 对应 [lab-28](https://github.com/YunaiV/SpringBoot-Labs/tree/master/lab-28) 。
- 芋艿 [《芋道 XXL-JOB 安装部署》](http://www.iocoder.cn/XXL-JOB/install/?vip)
- [《芋道 Spring Boot 异步任务入门》](http://www.iocoder.cn/Spring-Boot/Async-Job/?vip) 对应 [lab-29](https://github.com/YunaiV/SpringBoot-Labs/tree/master/lab-29) 。
# 1. Quartz
- [《Quartz 视频教程全集》](https://www.bilibili.com/video/av59632817/?pikaqiu)
> **推荐~记得 b 站【收藏 + 点赞 + 投币】素质三连噢**。
>
> 一共 21P 3 个小时多。
# 2. Elastic Job
- [《Elastic Job 视频教程全集》](https://www.bilibili.com/video/av59632516/?pikaqiu)
> **推荐~记得 b 站【收藏 + 点赞 + 投币】素质三连噢**。
>
> 一共 7P 1 个小时多。
# 3. XXL-Job
文档比较健全,可以直接看 http://www.xuxueli.com/xxl-job/ 。