springboot 整合xxl-job
1.下载xxl-job 安装包
2.执行对应的xxl-job脚本
3.修改xxl-job 的配置文件 如下图:
4.启动xxl-job
5.创建对应的springboot项目
6.引入xxl-job 注意:要注意对应的xxl-job版本
7.修改项目中配置文件
#----------xxl-job配置--------------
xxl:
job:
admin:
addresses: http://localhost:9098/xxl-job-admin #xxljob调度中心部署 例如:http://127.0.0.1:8080/xxl-job-admin
executor:
appname: test-job #xxljob配置的执行器名称,
ip: #执行器IP,默认为空表示自动获取IP
port: 9999 #xxljob配置的端口号,默认为9999
logpath: /data/xxl-job/jobhandler #执行器运行日志文件存储磁盘路径
logretentiondays: -1 #调度中心日志表数据保存天数,过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能
accessToken: #调度中心通讯TOKEN [选填]:非空时启用
8.添加xxl-job配置类
package com.example.producer.config;
/**
-
- 会话记录 前端控制器
- @author wangli
- @since 2021-12-13
*/
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
-
xxl-job config
-
@author xuxueli 2017-04-28
*/
@Configuration
@ComponentScan(basePackages = “com.example.producer.job”)//配置需要扫描的job类
@Slf4j
public class XxlJobConfig {
private final Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);@Value(“${xxl.job.admin.addresses}”)
private String adminAddresses;@Value(“${xxl.job.executor.appname}”)
private String appName;@Value(“${xxl.job.executor.ip}”)
private String ip;@Value(“${xxl.job.executor.port}”)
private int port;@Value(“${xxl.job.accessToken}”)
private String accessToken;@Value(“${xxl.job.executor.logpath}”)
private String logPath;@Value(“${xxl.job.executor.logretentiondays}”)
private int logRetentionDays;@Bean(initMethod = “start”, destroyMethod = “destroy”)
public XxlJobSpringExecutor xxlJobExecutor() {
logger.info(“>>>>>>>>>>> xxl-job config init.”);
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appName);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;
}
}
9.写测试job类
10.登录xxl-job 配置对应的执行器 注意:执行器地址为:ip+项目配置文件中的xxl.job.admin.executor.ip
11.添加任务管理器
其中jobHandler为测试代码中xxl-job注解中的值