From efd2e51d2480ff1c63f4dd9521203b9e20c60594 Mon Sep 17 00:00:00 2001 From: Hanserwei <2628273921@qq.com> Date: Sun, 19 Oct 2025 20:24:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(job):=20=E9=9B=86=E6=88=90XXL-JOB=E5=88=86?= =?UTF-8?q?=E5=B8=83=E5=BC=8F=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加XXL-JOB核心依赖 - 创建任务配置类XxlJobConfig - 定义任务属性类XxlJobProperties - 新增创建表任务示例CreateTableXxlJob - 实现任务执行器初始化逻辑 - 配置任务日志路径及保留天数 - 注册任务组件到Spring容器 - 添加任务处理器注解及日志记录 --- han-note-data-align/pom.xml | 6 ++++ .../data/align/config/XxlJobConfig.java | 35 +++++++++++++++++++ .../data/align/config/XxlJobProperties.java | 27 ++++++++++++++ .../data/align/job/CreateTableXxlJob.java | 20 +++++++++++ 4 files changed, 88 insertions(+) create mode 100644 han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/config/XxlJobConfig.java create mode 100644 han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/config/XxlJobProperties.java create mode 100644 han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/job/CreateTableXxlJob.java diff --git a/han-note-data-align/pom.xml b/han-note-data-align/pom.xml index 9431ba1..dbb99d5 100644 --- a/han-note-data-align/pom.xml +++ b/han-note-data-align/pom.xml @@ -77,6 +77,12 @@ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery + + + + com.xuxueli + xxl-job-core + diff --git a/han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/config/XxlJobConfig.java b/han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/config/XxlJobConfig.java new file mode 100644 index 0000000..11417a1 --- /dev/null +++ b/han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/config/XxlJobConfig.java @@ -0,0 +1,35 @@ +package com.hanserwei.hannote.data.align.config; + +import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@Slf4j +public class XxlJobConfig { + + @Resource + private XxlJobProperties xxlJobProperties; + + /** + * 初始化执行器 + * + * @return xxlJobSpringExecutor + */ + @Bean + public XxlJobSpringExecutor xxlJobExecutor() { + log.info(">>>>>>>>>>> xxl-job config init."); + XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); + xxlJobSpringExecutor.setAdminAddresses(xxlJobProperties.getAdminAddresses()); + xxlJobSpringExecutor.setAppname(xxlJobProperties.getAppName()); + xxlJobSpringExecutor.setIp(xxlJobProperties.getIp()); + xxlJobSpringExecutor.setPort(xxlJobProperties.getPort()); + xxlJobSpringExecutor.setAccessToken(xxlJobProperties.getAccessToken()); + xxlJobSpringExecutor.setLogPath(xxlJobProperties.getLogPath()); + xxlJobSpringExecutor.setLogRetentionDays(xxlJobProperties.getLogRetentionDays()); + return xxlJobSpringExecutor; + } + +} \ No newline at end of file diff --git a/han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/config/XxlJobProperties.java b/han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/config/XxlJobProperties.java new file mode 100644 index 0000000..3c4e348 --- /dev/null +++ b/han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/config/XxlJobProperties.java @@ -0,0 +1,27 @@ +package com.hanserwei.hannote.data.align.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@ConfigurationProperties(prefix = XxlJobProperties.PREFIX) +@Component +@Data +public class XxlJobProperties { + + public static final String PREFIX = "xxl.job"; + + private String adminAddresses; + + private String accessToken; + + private String appName; + + private String ip; + + private int port; + + private String logPath; + + private int logRetentionDays = 30; +} \ No newline at end of file diff --git a/han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/job/CreateTableXxlJob.java b/han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/job/CreateTableXxlJob.java new file mode 100644 index 0000000..f8f1f56 --- /dev/null +++ b/han-note-data-align/src/main/java/com/hanserwei/hannote/data/align/job/CreateTableXxlJob.java @@ -0,0 +1,20 @@ +package com.hanserwei.hannote.data.align.job; + +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import org.springframework.stereotype.Component; + +@Component +public class CreateTableXxlJob { + + /** + * 1、简单任务示例(Bean模式) + */ + @XxlJob("createTableJobHandler") + public void createTableJobHandler() throws Exception { + XxlJobHelper.log("## 开始初始化明日增量数据表..."); + + // TODO + } + +} \ No newline at end of file