Springboot集成xxl-Job
程序员文章站
2022-03-20 08:22:05
...
一、前言
xxl-job一个轻量级的分布的调度中间件,详情介绍自己到官网看:https://www.xuxueli.com/xxl-job/
二、客户端(执行器)
- 引入依赖
compile group: 'com.xuxueli', name: 'xxl-job-core', version: '2.2.0'
- 配置文件加入如下信息:
xxl:
job:
accessToken:
admin:
addresses: 'http://127.0.0.1:8080/xxl-job-admin' ## 控制面板的地址
executor:
ip:
port: 9600 ## 注册到调度器的端口
appname: admin-api ## 注册到调度器的名称
address:
logpath: 'log' ### xxl-job executor log-path
logretentiondays: 30 ### xxl-job executor log-retention-days
- 使用@XxlJob注解写一个调度任务,具体要求可以参数官方文档
三、控制面板(调度器)
- 下载源码。仓库地址:
https://github.com/xuxueli/xxl-job
- 导入SQL语句。新建一个数据库
xxl_job
,然后将项目根目录下doc/db/tables_xxl_job.sql
导入 - 进入xxl-job-admin模块,在resources目录下创建开发配置文件
application-dev.properties
,配置好数据库信息如下:
spring.datasource.url=jdbc:mysql://124.71.157.236:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=mima
- 指定dev配置启动xxl-job-admin,访问
http://localhost:8080/xxl-job-admin/
,用户名密码admin/123456
- 注册执行器
- 创建调度任务。设置好相应的参数就可以执行了
四、注意事项及问题
- 应该先启动调度器,再启动执行器。
- 注册执行器建议自动注册,如果不能功能可以排查网络的连通器。
- 使用项目集成的有graylog且为upd传输日志,会出现不兼通的情况,现象为:执行一次定时任务后,之后就就不会有日志再推入graylog中。
我的解决办法是将xxl-job-core源码中
XxlJobExecutor
类的线程中断oldJobThread.interrupt()
改为停止oldJobThread.stop();
,然后打成jar包引用,替换原来的依赖
虽然方法是过时了,但问题是解决了,也不影响原功能。
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'org.codehaus.groovy:groovy:3.0.3'
compile 'io.netty:netty-all:4.1.48.Final'
上一篇: PHPExcel如何导出excel的方法
下一篇: 1101java多线程
推荐阅读