什么是 XXL-JOB
XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。XXL-JOB 提供了许多特性,极大简化了任务调度的开发工作,从而做到开箱即用。
XXL-JOB 的设计思想是将调度行为抽象形成 “调度中心” 公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。将任务抽象成分散的 JobHandler,交由 “执行器” 统一管理,“执行器”负责接收调度请求并执行对应的 JobHandler 中业务逻辑。
系统组成
-
调度模块(调度中心): 负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块; 支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE 开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器 Failover。
-
执行模块(执行器): 负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效; 接收 “调度中心” 的执行请求、终止请求和日志请求等。
自定义任务调度模块
1、引入依赖
2、自定义配置
3、自定义任务 Handler
4、添加配置
5、正常启动服务,完成执行器服务的配置是逻辑实现。
启动调度中心 xxl-job-admin
1、下载源码
从 github 地址上下载源码:https://github.com/xuxueli/xxl-job
解压源码,源码结构如下:
2、初始化 “调度数据库”
“调度数据库初始化 SQL 脚本” 位置为:/xxl-job/doc/db/tables_xxl_job.sql
3、配置部署 “调度中心”
调度中心项目:xxl-job-admin。作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。
修改配置文件 / xxl-job/xxl-job-admin/src/main/resources/application.properties
4、部署并启动项目
调度中心访问地址:http://localhost:7100/xxl-job-admin (该地址执行器将会使用到,作为回调地址)
默认登录账号 “admin/123456”, 登录后运行界面如下图所示。
5、配置部署 “执行器项目”
启动上述自定义的任务调度模块,该模块我们定义了默认执行器和任务 handler-demoJobHandler
启动成功后,我们将看到在执行器管理多了一个在线的地址,如下图:
6、通过调度中心执行任务
通过界面化操作,触发 demoJobHandler 一次,我们将在执行器项目的输出中看到以下内容:
XXL-JOB, Hello World.
同时我们也可以通过 corn 表达式动态触发任务,至此,一个简单的调度任务就完成。
其他
xxl-job 还支持多种特性,比如支持 GLUE 在线开发任务逻辑代码模式,相比 “Bean 模式任务” 需要在执行器项目开发部署上线,更加简便轻量。
同时还支持调度中心和执行器的集群部署,调度日志等等。详情请查阅官网,官网有非常详细的描述。
参考资料