| package com.moral.api.config.xxljob; | 
|   | 
|   | 
| import lombok.extern.slf4j.Slf4j; | 
| 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; | 
|   | 
| import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; | 
|   | 
| @Configuration | 
| @ComponentScan(basePackages = "com.moral.api.job") | 
| @Slf4j | 
| public class XxlJobConfig { | 
|   | 
|     @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 Integer port; | 
|   | 
|     @Value("${xxl.job.accessToken}") | 
|     private String accessToken; | 
|   | 
|     @Value("${xxl.job.executor.logpath}") | 
|     private String logPath; | 
|   | 
|     @Value("${xxl.job.executor.logretentiondays}") | 
|     private Integer logRetentionDays; | 
|   | 
|     @Bean | 
|     public XxlJobSpringExecutor xxlJobSpringExecutor() { | 
|         log.info("xxl jon 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; | 
|     } | 
|   | 
|     /** | 
|      * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP; | 
|      * | 
|      *      1、引入依赖: | 
|      *          <dependency> | 
|      *             <groupId>org.springframework.cloud</groupId> | 
|      *             <artifactId>spring-cloud-commons</artifactId> | 
|      *             <version>${version}</version> | 
|      *         </dependency> | 
|      * | 
|      *      2、配置文件,或者容器启动变量 | 
|      *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.' | 
|      * | 
|      *      3、获取IP | 
|      *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress(); | 
|      */ | 
| } |