Update XxlJobConfig.java

cyj
pbvfus8to 8 months ago
parent ffea9fd8bb
commit 040f52e09b

@ -7,6 +7,7 @@
* *
* *
*/ */
package com.yami.shop.admin.config; package com.yami.shop.admin.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
@ -19,45 +20,75 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
/** /**
* xxl-job config * xxl-jobXXL-JOBXXL-JOB
* xxl-job *
* spring quartzquartzxxl-job *
* xxl-jobxxl-job * 使SpringQuartz
* xxl-jobxxl-job-adminxxl-job * 使QuartzQuartz
* XXL-JOBXXL-JOB
* XXL-JOBXXL-JOB
*
* 使XXL-JOB
* 1. XXL-JOBxxl-job-admin
* 2. xxl-job-admin
* 3. XXL-JOB
*
* @author FrozenWatermelon * @author FrozenWatermelon
* @date 2021/1/18 * @date 2021/1/18
*/ */
@Configuration @Configuration
public class XxlJobConfig { public class XxlJobConfig {
// 创建一个日志记录器用于记录与XXL-JOB配置相关的日志信息方便后续排查问题以及了解配置初始化等过程的情况。
private final Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); private final Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
// 通过@Value注解从配置文件中读取xxl-job.admin.addresses属性值该值代表了XXL-JOB管理端的地址用于执行器与管理端进行通信连接。
@Value("${xxl-job.admin.addresses}") @Value("${xxl-job.admin.addresses}")
private String adminAddresses; private String adminAddresses;
// 通过@Value注解从配置文件中读取xxl-job.accessToken属性值该值作为访问令牌用于在执行器与XXL-JOB管理端通信时进行身份验证等安全相关操作。
@Value("${xxl-job.accessToken}") @Value("${xxl-job.accessToken}")
private String accessToken; private String accessToken;
// 通过@Value注解从配置文件中读取xxl-job.logPath属性值该值指定了定时任务执行日志的存储路径方便后续查看任务执行情况以及排查可能出现的问题。
@Value("${xxl-job.logPath}") @Value("${xxl-job.logPath}")
private String logPath; private String logPath;
// 通过@Value注解从配置文件中读取server.port属性值即当前项目服务所监听的端口号后续可能会基于此端口号来确定执行器相关的端口等信息这里是做了端口偏移使用
@Value("${server.port}") @Value("${server.port}")
private int port; private int port;
// 注入InetUtils对象该对象是Spring Cloud提供的一个工具类用于处理网络相关的操作在这里主要用于获取合适的IP地址
// 特别是在多网卡、容器内部署等复杂网络环境下能够帮助准确获取到执行器要绑定的IP地址避免IP地址获取不准确导致的通信问题。
@Autowired @Autowired
private InetUtils inetUtils; private InetUtils inetUtils;
// 以下是配置XXL-JOB执行器的方法目前被注释掉了原因在类的开头注释部分已经详细说明了。
// 如果要启用XXL-JOB执行定时任务需要取消这段代码的注释并确保已经正确配置好了XXL-JOB相关环境。
// @Bean注解表示该方法会创建一个Spring管理的Bean对象在这里就是创建一个XxlJobSpringExecutor类型的Bean
// 该对象是XXL-JOB在Spring环境下的执行器实现类负责与XXL-JOB管理端交互以及执行具体的定时任务等操作。
// @Bean // @Bean
// public XxlJobSpringExecutor xxlJobExecutor() { // public XxlJobSpringExecutor xxlJobExecutor() {
// //
// // 记录一条日志信息表示开始进行XXL-JOB配置初始化方便在启动项目时查看相关配置是否正常加载等情况。
// logger.info(">>>>>>>>>>> xxl-job config init."); // logger.info(">>>>>>>>>>> xxl-job config init.");
// // 创建一个XxlJobSpringExecutor实例用于后续配置并返回作为Spring管理的Bean对象。
// XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); // XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
// // 设置XXL-JOB管理端的地址让执行器知道要与哪个管理端进行通信连接这个地址就是从配置文件中读取到的adminAddresses的值。
// xxlJobSpringExecutor.setAdminAddresses(adminAddresses); // xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
// // 设置应用名称,这里固定设置为"mall4j"在XXL-JOB管理端可以通过这个名称来区分不同的执行器所属的应用方便管理和监控。
// xxlJobSpringExecutor.setAppname("mall4j"); // xxlJobSpringExecutor.setAppname("mall4j");
// // 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP // // 针对多网卡、容器内部署等情况,借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP
// // 通过调用InetUtils的findFirstNonLoopbackAddress方法获取到第一个非回环地址即有效的网络IP地址并设置为执行器绑定的IP地址
// // 确保执行器能够在复杂网络环境下正确地与XXL-JOB管理端进行通信。
// xxlJobSpringExecutor.setIp(inetUtils.findFirstNonLoopbackAddress().getHostAddress()); // xxlJobSpringExecutor.setIp(inetUtils.findFirstNonLoopbackAddress().getHostAddress());
// // 设置执行器监听的端口号这里采用了项目服务端口号port加上1000的方式来确定避免端口冲突等问题同时也方便统一管理端口分配。
// xxlJobSpringExecutor.setPort(port + 1000); // xxlJobSpringExecutor.setPort(port + 1000);
// // 设置访问令牌用于在执行器与XXL-JOB管理端通信时进行身份验证等安全相关操作这个值就是从配置文件中读取到的accessToken的值。
// xxlJobSpringExecutor.setAccessToken(accessToken); // xxlJobSpringExecutor.setAccessToken(accessToken);
// // 设置定时任务执行日志的存储路径方便后续查看任务执行情况以及排查可能出现的问题这个值就是从配置文件中读取到的logPath的值。
// xxlJobSpringExecutor.setLogPath(logPath); // xxlJobSpringExecutor.setLogPath(logPath);
// // 设置日志保留天数这里设置为3天表示定时任务执行日志只会保留最近3天的记录超过这个天数的旧日志会被自动清理
// // 这样可以避免日志文件过多占用磁盘空间,同时也能保证在一定时间范围内可以查看历史任务执行情况。
// xxlJobSpringExecutor.setLogRetentionDays(3); // xxlJobSpringExecutor.setLogRetentionDays(3);
// return xxlJobSpringExecutor; // return xxlJobSpringExecutor;
// } // }

Loading…
Cancel
Save