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