springboot整合xxl-job详解(采坑记录)
在我看来,总体可以分为三大块:
-
调度中心
-
执行器
-
配置定时任务
调度中心
简单来讲就是 xxl-job-admin
那个模块,配置:
-
-
进行配置文件的配置,如下图
-
进行日志存放位置的修改
-
然后idea打包之后就能当作调度中心运行了
-
访问地址:
ip:port/xxl-job-admin
默认的账号密码:admin/123456
执行器
就是我们使用springboot
整合xxl-job
需要编写的代码。 配置过程:
-
引入核心依赖,这里使用的是2.2.0
<!-- xxl-job -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.2.0</version>
</dependency>
注意:这里的版本与你xxl-job-admin
的版本保持一致。
-
配置文件
xxl
这里ip
的获取,为空可以自动获取,你也可以在调度中心管理页面进行手动配置。
如果需要使用accessToken
,那么就需要在xxl-job-admin
的配置文件里进行配置对应。
-
编写配置类
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @DESC xxl-job配置类
* @AUTHOR lh
* @DATE 2022/6/23 11:41
*/
这里需要注意,高版本与低版本的配置类略有不同。
-
编写测试类
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @DESC 测试定时任务代码
* @AUTHOR lh
* @DATE 2022/6/23 11:52
*/
注意:2.2.0版本,已经不支持@JobHandler
注解了。 这里的XxlJob
与调度中心的定时任务配置相对应。
遇到的问题:跑执行器项目的时候,成功启动之后,立马就shoudown,也不向调度中心自动注册。
解决方法:在pom文件里加上web的依赖。