问题描述
在springboot项目里配置了xxl-job2.3.0,但是执行器无法自动注册
yaml配置如下:
xxl:
job:
admin:
enable: true
address: http://192.xxx.xxx.xxx:38080/xxl-job-admin
password: admin
username: 123456
accessToken:
executor:
appname: test-executor
address:
ip:
port: 9993
logpath: /data/applogs/xxl_job/jobHandler
logretentiondays: 7
执行器无法自动注册到xxl-job-admin
排查过程
经过debug发现,是spring没有加载xxlJobExecutor这个Bean
debug流程(SpringApplication.run()–>SpringApplication.refreshContext()–>SpringApplication.refresh() -->SpringApplication.finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory))
解决方法
自己配置个xxlJobExecutor Bean
文章来源:https://www.toymoban.com/news/detail-596270.html
@Configuration
@Slf4j
public class XxlJobConfig {
@Value("${xxl.job.admin.address}")
private String adminAddress;
@Value("${xxl.job.executor.address}")
private String address;
@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.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Value("${xxl.job.accessToken}")
private String token;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddress);
xxlJobSpringExecutor.setAppname(appName);
xxlJobSpringExecutor.setAddress(address);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(token);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
配置完成后,再次debug启动服务,可以看到beanFactory里有xxlJobExecutor Bean,执行器也注册到了xxl-job-admin
文章来源地址https://www.toymoban.com/news/detail-596270.html
到了这里,关于xxl-job执行器无法自动注册的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!