這兩天做了公司項目集成xxl-job,記錄一下
xxl-job-admin調度中心直接移植,在pom里引入一下core的依賴,我用了最新的版本
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.1.2</version>
</dependency>
執行器參考了 springboot的示例,引入一下core依賴.
項目使用eureka作為注冊中心,從eureka獲取調度中心的地址,所以修改了一下yml 和 XxlJobConfig
xxl:
job:
executor:
logpath: /home/jar/public/job-service/log/jobhandler
appname: yurun-job
port: -1
logretentiondays: 10
ip:
# 調度中心 eureka服務
admin:
addresses: job-admin-service
accessToken:
XxlJobConfig
@Bean public XxlJobSpringExecutor xxlJobExecutor() { logger.info(">>>>>>>>>>> xxl-job config init."); XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); //服務發現 從eureka拉取服務 dll
List<String> urls = Lists.newArrayList(); List<ServiceInstance> instances = discoveryClient.getInstances(adminAddresses); if(StringUtils.isNotEmpty(instances)) { instances.forEach(serviceInstance->{ urls.add("http://"+ serviceInstance.getHost() + ":" + serviceInstance.getPort()); }); } xxlJobSpringExecutor.setAdminAddresses(String.join(",",urls)); xxlJobSpringExecutor.setAppName(appName); xxlJobSpringExecutor.setIp(ip); xxlJobSpringExecutor.setPort(port); xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); return xxlJobSpringExecutor; }
