소스 검색

集成xxl-job

15902849627 3 년 전
부모
커밋
23de2be3f7

+ 1 - 0
sckw-common/pom.xml

@@ -21,6 +21,7 @@
         <module>sckw-common-elasticsearch</module>
         <module>sckw-common-elasticsearch</module>
         <module>sckw-common-excel</module>
         <module>sckw-common-excel</module>
         <module>sckw-common-remote</module>
         <module>sckw-common-remote</module>
+        <module>sckw-common-xxl-job</module>
     </modules>
     </modules>
 
 
     <properties>
     <properties>

+ 29 - 0
sckw-common/sckw-common-xxl-job/pom.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.sckw</groupId>
+        <artifactId>sckw-common</artifactId>
+        <version>1.0.0</version>
+    </parent>
+
+    <artifactId>sckw-common-xxl-job</artifactId>
+    <version>1.0.0</version>
+    <description>核心模块</description>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <xxljob.version>2.4.0</xxljob.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>com.xuxueli</groupId>
+            <artifactId>xxl-job-core</artifactId>
+            <version>${xxljob.version}</version>
+        </dependency>
+    </dependencies>
+</project>

+ 59 - 0
sckw-common/sckw-common-xxl-job/src/main/java/com/sckw/xxljob/config/XxlJobAutoConfiguration.java

@@ -0,0 +1,59 @@
+package com.sckw.xxljob.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+
+/**
+ * @desc: xxl-job自动装配
+ * @author: yzc
+ * @date: 2023-06-15 9:29
+ */
+@EnableConfigurationProperties
+@Slf4j
+public class XxlJobAutoConfiguration {
+
+    @Value("${xxl.job.admin.addresses}")
+    private String adminAddresses;
+
+    @Value("${xxl.job.accessToken:}")
+    private String accessToken;
+
+    @Value("${xxl.job.executor.appname}")
+    private String appName;
+
+    @Value("${xxl.job.executor.address:}")
+    private String address;
+
+    @Value("${xxl.job.executor.ip:}")
+    private String ip;
+
+    @Value("${xxl.job.executor.port}")
+    private int port;
+
+    @Value("${xxl.job.executor.logpath}")
+    private String logPath;
+
+    @Value("${xxl.job.executor.logretentiondays}")
+    private int logRetentionDays;
+
+    @Bean
+    @ConditionalOnMissingBean(XxlJobSpringExecutor.class)
+    public XxlJobSpringExecutor xxlJobExecutor() {
+        log.info(">>>>>>>>>> xxl-job config init start <<<<<<<<<<");
+        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+        xxlJobSpringExecutor.setAppname(appName);
+        xxlJobSpringExecutor.setAddress(address);
+        xxlJobSpringExecutor.setIp(ip);
+        xxlJobSpringExecutor.setPort(port);
+        xxlJobSpringExecutor.setAccessToken(accessToken);
+        xxlJobSpringExecutor.setLogPath(logPath);
+        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+        return xxlJobSpringExecutor;
+    }
+
+}

+ 1 - 0
sckw-common/sckw-common-xxl-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -0,0 +1 @@
+com.sckw.xxljob.config.XxlJobAutoConfiguration

+ 6 - 0
sckw-modules/sckw-example/pom.xml

@@ -47,6 +47,12 @@
             <version>1.0.0</version>
             <version>1.0.0</version>
         </dependency>
         </dependency>
 
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-xxl-job</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+
         <dependency>
         <dependency>
             <groupId>com.sckw</groupId>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-excel</artifactId>
             <artifactId>sckw-common-excel</artifactId>

+ 22 - 0
sckw-modules/sckw-example/src/main/java/com/sckw/example/service/TestXxlJobService.java

@@ -0,0 +1,22 @@
+package com.sckw.example.service;
+
+import com.sckw.core.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @desc: xxl-job测试
+ * @author: yzc
+ * @date: 2023-06-15 11:25
+ */
+@Service
+@Slf4j
+public class TestXxlJobService {
+    public void test(String param) {
+        if (StringUtils.isNotBlank(param)) {
+            log.info("xxl-job任务参数不为空,参数为:{}", param);
+        } else {
+            log.info("xxl-job任务参数为空····");
+        }
+    }
+}

+ 30 - 0
sckw-modules/sckw-example/src/main/java/com/sckw/example/task/TestXxlJobTask.java

@@ -0,0 +1,30 @@
+package com.sckw.example.task;
+
+import com.sckw.example.service.TestXxlJobService;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * @desc: xxl-job测试
+ * @author: yzc
+ * @date: 2023-06-15 11:23
+ */
+@Component
+@Slf4j
+@RequiredArgsConstructor
+public class TestXxlJobTask {
+
+    private final TestXxlJobService testXxlJobService;
+
+    @XxlJob("TestXxlJobTask")
+    public void process(){
+        String param = XxlJobHelper.getJobParam();
+        log.info("xxl-job测试任务开始...month:{}", param);
+        testXxlJobService.test(param);
+        log.info("xxl-job测试任务结束...month:{}", param);
+    }
+
+}