前言
因为公司最近系统升级,准备替换掉Quartz使用xxl-job,近期学习了一下xxl-job,记录下笔记
我们知道Quartz是由JobDetail(任务)、Trigger(执行器)和Scheduler(调度器)组成,xxl-job其实就是将Quartz单机代码进行解耦,拆分成多个模块运行
为什么使用xxl-job放弃Quartz?
- 调度逻辑Scheduler和任务耦合在一个项目中,当任务随着调度任务逐渐增加,调度任务的逻辑逐渐加重,调度系统整体性能会受影响
- Quartz集群节点见负载结果是随机的,谁抢到了数据库锁谁就去执行。可能一台机器一直都抢到的情况,另一台机器性能无法发挥
- Quartz本身没有提供管理界面,需要自己开发
- Quartz的日志记录、监控不是很完善
xxl-job优势
- 性能提升,拆成多个服务了,肯定比单体机更快
- 拥有超时、失败、故障转移的处理
- 提供操作界面、详细的日志、消息通知
快速上手
使用就不写了,百度一大堆
xxl-job原理
xxl-job分为两个服务
1. 调度中心
调度中心是任务的指挥官,指定job任务进行执行
负责管理调度信