关于xxljob-2.3.x版本使用
作者:互联网
xxljob从2.3.0开始做了一些改变,查看源码发现有很多变动,其中包括handler的实现方式、注解等,记录一下:
依赖
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version>
</dependency>
配置
@Slf4j
@Configuration
@ComponentScan(basePackages = "com.xxx.job") //指定扫描handler的包的位置
public class XxlJobConfig {
@Value("${xxl.job.flag}")
private boolean flag;
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.executor.appname}")
private String appName;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.executor.ip}")
private String ip;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
//判断是否注册到调度中心
if (flag) { //添加开关
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appName);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setIp(ip);
return xxlJobSpringExecutor;
} else {
return null;
}
}
}
配置文件
xxl:
job:
flag: true
admin:
addresses : http://127.0.0.1:8080/xxl-job-admin/
executor:
ip: 127.0.0.1 //当前服务的ip
appname : test
port : 9999 //docker部署时需要做这个端口的映射,用于xxljob调度时请求
定时任务
2.3.x与之前版本不同的地方就在XxlJob注解
@Slf4j
@Component
public class DemoJobHandler{
@XxlJob(value = "testJobHandler")
public void demoJobHandler() throws Exception {
// 2.3.0版本获取参数的方式
// 注意xxl-job统一只接受一个String类型的参数,如果有多个参数,请自定义规则,获取到参数后自行切割
String param = XxlJobHelper.getJobParam();
log.info("job 参数:{}",param);
// 打印到日志文件的方式,打印之后的文件,在调度中心的调度日志管理中,操作选项下的执行日志可查看到
XxlJobHelper.log("=====testJobHandler===== test XXL-JOB!");
// 执行结束后返回的方式,同样在执行日志可查看
XxlJobHelper.handleSuccess("执行成功");
}
}
配置调度平台
标签:String,Value,job,版本,2.3,xxlJobSpringExecutor,xxljob,xxl 来源: https://blog.csdn.net/qq_39380192/article/details/122357960