XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。至今,XXL-JOB已接入多家互联网企业的线上产品线,接入场景如电商业务、O2O业务、金融业务和大数据作业等。
本文将通过一个SpringBoot示例工程,详述XXL-JOB的基本概念和用法。
一、环境描述
1. XXL-JOB服务器
2. Disconf服务器
3. Spring Tool Suite
4. Redis
版本:v4.0.9
IP:10.15.1.21
端口:6379
二、使用XXL-JOB的原因
1. Quartz的不足
Quartz作为开源任务调度中的佼佼者,是任务调度的首选。但是在集群环境中,Quartz采用API的方式对任务进行管理,这样存在以下问题:
通过调用API的方式操作任务,不人性化。
需要持久化业务的QuartzJobBean到底层数据表中,系统侵入性相当严重。
调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况下,此时调度系统的性能将大大受限于业务。
XXL-JOB弥补了Quartz的上述不足之处。
2. RemoteHttpJobBean
常规的Quartz的开发,任务逻辑一般维护在QuartzJobBean中,耦合很严重。
XXL-JOB中“调度模块”和“任务模块”完全解耦,调度模块中的所有调度任务使用同一个QuartzJobBean,即RemoteHttpJo