xxl-job任务调度系统的配置与使用

xxl-job是一个开源的系统,类似sprig-quart定时器一样,可以收集需要跑批的定时任务。

源码下载GitHub地址:https://github.com/xuxueli/xxl-job

开源系统包括调度中心、核心类、测试实例三个相互依赖的模块。

xxl-job任务调度系统的配置与使用

调度中心:

主要收集注册过来的执行器与执行任务并做UI展示与操作,调度中心需要配置保存注册任务与操作记录的数据库

xxl-job任务调度系统的配置与使用

数据库初始化脚本见开源代码doc目录

xxl-job任务调度系统的配置与使用

核心类:

  该模块是封装的一些工具类和初始化内容,无需配置,直接被依赖即可

测试实例:

   测试实例关键需要配置执行器注册信息,包括调度中心地址,执行器的执行端口、实例名称。

其中执行器的执行端口跟测试实例项目的端口不一致,需要区分开。

xxl-job任务调度系统的配置与使用

【调度中心地址】是调度中心模块的地址

如上配置完之后需要初始化必要必要的配置到核心类模块中:

xxl-job任务调度系统的配置与使用

添加执行任务方法入口:

执行任务在项目启动初始化实例时注册到调度中心,所以方法所在类需要添加@Component注解,

@XxlJob注解标识执行任务方法入口,其中demoJobHandler_myself是执行任务名称,

xxl-job任务调度系统的配置与使用

如上模块配置完,调度执行模块和测试实例模块就可以以此运行起来,剩下的就在调度中心UI里面进行配置了。

调度中心控制系统配置:

调度中心控制系统的返回路径是调度中心模块的首页,如:默认的用户名/密码是admin/123456

xxl-job任务调度系统的配置与使用

xxl-job任务调度系统的配置与使用

登入之后的操作:

添加执行器

xxl-job任务调度系统的配置与使用

【APPName】需要跟测试实例中的xxl.job.executor.appname参数值匹配

【机器地址】是注册中心的xxl.job.executor.ip与xxl.job.executor.port的测试值:http://ip:host/

添加执行任务:

xxl-job任务调度系统的配置与使用

【执行器】需要跟添加执行器名称相互匹配,也就是任务要跟项目匹配

【Cron*】是时间表达,具体可以参考如下:

*/5 * * * * ? 每隔5秒执行一次
0 */1 * * * ? 每隔1分钟执行一次
0 0 5-15 * * ? 每天5-15点整点触发
0 0/3 * * * ? 每三分钟触发一次
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
网页生成器:https://cron.qqe2.com/

JobHandler*】任务名称,该名称要跟测试实例中的@XxlJob注解的名称匹配

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

通过如上的配置,定时任务就可以跑起来了,那么该怎么独立出调度中心呢,就是执行器和执行内容分布到了其他的项目怎么办?

这边为了防止因版本的差异,可以直接把开源项目三个模块同时发布到maven私服,在其他项目直接dependency添加依赖就可以,

其他的配置方法跟上面的测试实例一模一样(注意区分实例名称和执行器端口)

xxl-job任务调度系统的配置与使用

如果不发布到私服环境可以把开源项目构建在同一个主项目的子module下,跟开源项目平行的module就都可以添加定时器依赖,如下

xxl-job任务调度系统的配置与使用

 

上一篇:【XXL-JOB】 XXL-JOB 部署安装及使用


下一篇:xxl-job学习记录