XXL-JOB作业调度平台
产品介绍
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。XXL-JOB之前的版本是在quartz的基础上实现的,但目前自研触发组件,移除quartz依赖。 XXL-JOB修改了任务调度的模式,并且任务调度采用注册和RPC调用方式来实现,开源项目,作者许雪理,现开放源代码并接入多家公司线上产品线,接入场景如电商业务,O2O业务和大数据作业等 。
XXL-JOB架构图 v2.1.0
框架源码结构如下:
环境配置:Maven3+、Jdk1.7+、Mysql5.6+
xxl-job-admin:调度中心
基于Springboot框架开发,运行后,在网页登录http://localhost:8080/xxl-job-admin,访问调度中心
调度中心需要将调度数据实例化至数据库,需要在数据库中建立相应的数据表,并在admin包下resources 文件夹中的application.properties配置文件进行配置
xxl-job-core:公共依赖
xxl与项目结合时,添加core包进行Maven依赖,框架的实现都是在core包中进行实现
xxl-job-core实现了以下功能: 定时任务架构、调度中心、执行器注册、调度中心注册、任务管理、任务执行或触发、jobthread、回调
xxl-job-executor:执行器
配置调度、执行功能在执行器中实现
在执行器启动时会读取配置,当存在任务调度中心地址会依次向任务调度中心注册其地址
配置文件在 resources 文件夹下:application.properties
XXL-JOB执行器新增与任务新增
可在可视化界面中手动创建
也可以使用上述配置文件配置appname
Appname必须与application.properties中配置的信息相同,机器地址可以根据部署策略配置单机或多机,多机器之间使用逗号分隔
任务是在执行器下管理,任务可以配置轮询机制,触发Corn公式,以及后续子任务(串行和并行皆可)
JobHander需要与程序中方法对应,例如:运行模式为bean时Springboot项目中可使用@Xxljob(“JobHander”)引入任务
可视化调度日志,执行的数据情况已实例化至数据库
开发示例
使用xxl-job实现springbatch定时调用,springboot工程中使用Maven引入SpringBatch以及xxl-job-core
配置springbatch数据库信息以及xxl.job.admin.addresse等
配置执行信息 如图:
xxl-job与springbatch简单的实例开发,项目在springboot下引入xxl-job与springbatch
@XxlJob( )注册执行器
使用使用JobLautch启动SpringBatch
启动job-admin以及job-exector
xxl-job可视化任务管理界面管理任务
使用corn表达式控制间隔5秒执行一次
xxl-job日志信息
xxl-job日志信息