Browse Source

新增定时任务xxljob组件

lijie 3 years ago
parent
commit
8560725752

+ 0 - 17
dmp-comp/dmp-auth-starter/pom.xml

@@ -23,23 +23,6 @@
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-openfeign</artifactId>
         </dependency>
-        <dependency>
-            <groupId>io.jsonwebtoken</groupId>
-            <artifactId>jjwt-api</artifactId>
-            <version>0.11.2</version>
-        </dependency>
-        <dependency>
-            <groupId>io.jsonwebtoken</groupId>
-            <artifactId>jjwt-impl</artifactId>
-            <version>0.11.2</version>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.jsonwebtoken</groupId>
-            <artifactId>jjwt-jackson</artifactId>
-            <version>0.11.2</version>
-            <scope>runtime</scope>
-        </dependency>
     </dependencies>
 
 </project>

+ 20 - 0
dmp-comp/dmp-job-executor-starter/pom.xml

@@ -0,0 +1,20 @@
+<?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">
+    <parent>
+        <artifactId>dmp-comp</artifactId>
+        <groupId>com.persagy</groupId>
+        <version>1.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>dmp-job-executor-starter</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.xuxueli</groupId>
+            <artifactId>job-core</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 78 - 0
dmp-comp/dmp-job-executor-starter/src/main/java/com/persagy/dmp/job/config/XxlJobConfig.java

@@ -0,0 +1,78 @@
+package com.persagy.dmp.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * xxl-job config
+ * @author : lijie
+ * Update By 2022/1/24 20:16
+ */
+@Configuration
+@Slf4j
+public class XxlJobConfig {
+
+    @Value("${xxl.job.admin.addresses:http://job-admin:8080/job-admin}")
+    private String adminAddresses;
+
+    @Value("${xxl.job.accessToken:}")
+    private String accessToken;
+
+    @Value("${xxl.job.executor.appname:${spring.application.name}-job-executor}")
+    private String appname;
+
+    @Value("${xxl.job.executor.address:http://${spring.application.name}:${server.port}}")
+    private String address;
+
+    @Value("${xxl.job.executor.ip:${spring.application.name}}")
+    private String ip;
+
+    @Value("${xxl.job.executor.port:${server.port}}")
+    private int port;
+
+    @Value("${xxl.job.executor.logpath:./logs/job-executor/application/jobHandler}")
+    private String logPath;
+
+    @Value("${xxl.job.executor.logretentiondays:7}")
+    private int logRetentionDays;
+
+
+    @Bean
+    public XxlJobSpringExecutor xxlJobExecutor() {
+        log.info(">>>>>>>>>>> xxl-job config init.");
+        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;
+    }
+
+    /**
+     * 针对多网卡、容器内部署等情况,可借助 "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();
+     */
+
+
+}

+ 1 - 0
dmp-comp/pom.xml

@@ -19,6 +19,7 @@
         <module>dmp-digital-starter</module>
         <module>dmp-amqp-starter</module>
         <module>dmp-auth-starter</module>
+        <module>dmp-job-executor-starter</module>
     </modules>
 
 </project>

+ 13 - 0
dmp-parent/pom.xml

@@ -50,6 +50,7 @@
     <properties>
         <dmp.version>1.1.0</dmp.version>
         <platform.version>1.0.0</platform.version>
+        <platform.job.version>2.3.0</platform.job.version>
         <mybatis-plus.version>3.4.2</mybatis-plus.version>
         <dynamic-datasource.version>3.4.1</dynamic-datasource.version>
         <tomcat-jdbc.version>9.0.31</tomcat-jdbc.version>
@@ -83,6 +84,7 @@
         <log4j-api.version>2.15.0</log4j-api.version>
         <hadoop.version>2.5.1</hadoop.version>
         <log4j-over-slf4j>1.7.32</log4j-over-slf4j>
+
     </properties>
 
     <dependencyManagement>
@@ -124,6 +126,11 @@
             </dependency>
             <dependency>
                 <groupId>com.persagy</groupId>
+                <artifactId>dmp-job-executor-starter</artifactId>
+                <version>${dmp.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.persagy</groupId>
                 <artifactId>integrated-common-core</artifactId>
                 <version>${platform.version}</version>
             </dependency>
@@ -137,6 +144,12 @@
                 <artifactId>integrated-log-spring-boot-starter</artifactId>
                 <version>${platform.version}</version>
             </dependency>
+            <!-- xxl-job-core -->
+            <dependency>
+                <groupId>com.xuxueli</groupId>
+                <artifactId>job-core</artifactId>
+                <version>${platform.job.version}</version>
+            </dependency>
             <dependency>
                 <groupId>org.apache.logging.log4j</groupId>
                 <artifactId>log4j-api</artifactId>