欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Springboot集成xxl-Job

程序员文章站 2022-03-20 08:22:05
...

一、前言

xxl-job一个轻量级的分布的调度中间件,详情介绍自己到官网看:https://www.xuxueli.com/xxl-job/

二、客户端(执行器)

  1. 引入依赖compile group: 'com.xuxueli', name: 'xxl-job-core', version: '2.2.0'
  2. 配置文件加入如下信息:
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
  1. 使用@XxlJob注解写一个调度任务,具体要求可以参数官方文档

Springboot集成xxl-Job

三、控制面板(调度器)

  1. 下载源码。仓库地址:https://github.com/xuxueli/xxl-job
  2. 导入SQL语句。新建一个数据库xxl_job,然后将项目根目录下doc/db/tables_xxl_job.sql导入
  3. 进入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
  1. 指定dev配置启动xxl-job-admin,访问http://localhost:8080/xxl-job-admin/,用户名密码admin/123456

Springboot集成xxl-Job

  1. 注册执行器

Springboot集成xxl-Job

  1. 创建调度任务。设置好相应的参数就可以执行了

Springboot集成xxl-Job

四、注意事项及问题

  1. 应该先启动调度器,再启动执行器。
  2. 注册执行器建议自动注册,如果不能功能可以排查网络的连通器。
  3. 使用项目集成的有graylog且为upd传输日志,会出现不兼通的情况,现象为:执行一次定时任务后,之后就就不会有日志再推入graylog中。

我的解决办法是将xxl-job-core源码中XxlJobExecutor类的线程中断oldJobThread.interrupt()改为停止oldJobThread.stop();,然后打成jar包引用,替换原来的依赖
虽然方法是过时了,但问题是解决了,也不影响原功能。

Springboot集成xxl-Job

Springboot集成xxl-Job

compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'org.codehaus.groovy:groovy:3.0.3'
compile 'io.netty:netty-all:4.1.48.Final'