博客详情

xxl-job任务调度平台 (原创)

作者: 朝如青丝暮成雪
发布时间:2021-08-08 23:32:30  文章分类:java编程   阅读(1415)  评论(0)

xxl-job是一个著名的开源定时任务调度平台。下面笔者简单地介绍下xxl-job的学习使用。


1、下载xxl-job源码

git clone https://gitee.com/xuxueli0323/xxl-job.git   或者从github下载 https://github.com/xuxueli/xxl-job/ 

下载后的源码可以直接用idea打开。


2、导入数据库脚本

xxl-job的admin监控中心控制台需要依赖一个数据库,我们在使用前需要先将数据库脚本导入。

找到doc\db\tables_xxl_job.sql 文件,直接导入到mysql数据库即可,导入的数据库名默认为 xxl-job

控制台默认有一个管理员账号: root / 123456 


3、启动、登录管理控制台

启动admin服务前,检查application.properties文件中配置的数据库连接以及账户密码是否正确,之后启动admin服务。

浏览器打开 http://localhost:8080/xxl-job-admin  页面:


4、创建一个调度器  

可以将官方sample中的执行器去掉(直接将相关表truncate掉),自己重新建立

TRUNCATE TABLE `xxl_job_log_report` ;
TRUNCATE TABLE `xxl_job_group` ;
TRUNCATE TABLE `xxl_job_registry` ;

例如,笔者将上述3个表直接truncate掉了,自己重新注册了一个叫bm-executor的执行器。

bm-executor是一个springboot服务,其中需要配置执行器的appName  

xxl.job.executor.appname=bm-executor



5、新建立任务(jobHandle)   

调度类型: 无、CRON、固定速度  ,

cron: 执行时间cron表达式 

运行模式:默认选bean

jobHandler:  执行器spring应用中的bean,方法上需要标记@XxlJob注解 (重要)

路由策略:第一个、最后一个、轮询、随机、一致性hash、最不经常使用、最近最久未使用、故障转移、忙碌转移、分片广播 (支持分片执行任务)

执行时(手动or自动)还可以传入执行参数,代码中使用XxlJobHelper.getJobParam(); 可以获取到执行参数

@XxlJob直接中,还可以指定任务的init方法和destory方法。方法体中可以使用XxlJobHelper.handleFail()、XxlJobHelper.handleSuccess()方法来告知xxl-job的

调度中心任务是否执行成功。  以下是笔者 修改的 xxl-job-executor-sample-springboot 项目的SampleXxlJob的 一些代码:



6、启动 xxl-job-executor-sample-springboot 项目,

在admin控制台中添加第一个demo任务,选择运行模式为:bean ,输入jobHandler为:demoJobHandler。 

添加成功后,该任务默认为停止状态。 此时可以找到操作项--启动 即可启动定时任务, 也可以选择"执行一次" 手动触发一次任务。

。。。

关键字:  xxl-job  定时任务
评论信息
暂无评论
发表评论

亲,您还没有登陆,暂不能评论哦! 去 登陆 | 注册

博主信息
   
数据加载中,请稍候...
文章分类
   
数据加载中,请稍候...
阅读排行
 
数据加载中,请稍候...
评论排行
 
数据加载中,请稍候...

Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1

鄂公网安备 42011102000739号