Pre Merge pull request !71 from xd502djj/master
commit
c64af556e8
@ -0,0 +1,35 @@
|
|||||||
|
<?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.xuxueli</groupId>
|
||||||
|
<artifactId>xxl-job</artifactId>
|
||||||
|
<version>3.2.1-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<groupId>com.xxl.job</groupId>
|
||||||
|
<artifactId>xxl-job-spring-boot-starter</artifactId>
|
||||||
|
<version>3.2.1-SNAPSHOT</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.release>17</maven.compiler.release>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||||
|
<version>3.5.4</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.xuxueli</groupId>
|
||||||
|
<artifactId>xxl-job-core</artifactId>
|
||||||
|
<version>3.2.1-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
@ -0,0 +1,146 @@
|
|||||||
|
package com.xxl.job.spring.boot.autoconfigure;
|
||||||
|
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
||||||
|
@ConfigurationProperties(prefix = "xxl.job")
|
||||||
|
public class XxlJobProperties {
|
||||||
|
private boolean enabled;
|
||||||
|
|
||||||
|
private Admin admin;
|
||||||
|
|
||||||
|
private String accessToken;
|
||||||
|
|
||||||
|
private Executor executor;
|
||||||
|
|
||||||
|
public static class Admin {
|
||||||
|
private String addresses; // xxl.job.admin.addresses
|
||||||
|
|
||||||
|
public Admin() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Admin(String addresses) {
|
||||||
|
this.addresses = addresses;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAddresses() {
|
||||||
|
return addresses;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAddresses(String addresses) {
|
||||||
|
this.addresses = addresses;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Executor {
|
||||||
|
private String appname; // xxl.job.executor.app-name
|
||||||
|
private String address;
|
||||||
|
private String ip;
|
||||||
|
private Integer port;
|
||||||
|
private String logPath;
|
||||||
|
private int logretentiondays;
|
||||||
|
|
||||||
|
|
||||||
|
public Executor() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Executor(String appname, String address, String ip, Integer port, String logPath, int logretentiondays) {
|
||||||
|
this.appname = appname;
|
||||||
|
this.address = address;
|
||||||
|
this.ip = ip;
|
||||||
|
this.port = port;
|
||||||
|
this.logPath = logPath;
|
||||||
|
this.logretentiondays = logretentiondays;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAppname() {
|
||||||
|
return appname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppname(String appname) {
|
||||||
|
this.appname = appname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAddress() {
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAddress(String address) {
|
||||||
|
this.address = address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIp() {
|
||||||
|
return ip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIp(String ip) {
|
||||||
|
this.ip = ip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getPort() {
|
||||||
|
return port;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPort(Integer port) {
|
||||||
|
this.port = port;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLogPath() {
|
||||||
|
return logPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLogPath(String logPath) {
|
||||||
|
this.logPath = logPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLogretentiondays() {
|
||||||
|
return logretentiondays;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLogretentiondays(int logretentiondays) {
|
||||||
|
this.logretentiondays = logretentiondays;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public XxlJobProperties() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public XxlJobProperties(boolean enabled, Admin admin, String accessToken, Executor executor) {
|
||||||
|
this.enabled = enabled;
|
||||||
|
this.admin = admin;
|
||||||
|
this.accessToken = accessToken;
|
||||||
|
this.executor = executor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnabled(boolean enabled) {
|
||||||
|
this.enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Admin getAdmin() {
|
||||||
|
return admin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAdmin(Admin admin) {
|
||||||
|
this.admin = admin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAccessToken() {
|
||||||
|
return accessToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccessToken(String accessToken) {
|
||||||
|
this.accessToken = accessToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Executor getExecutor() {
|
||||||
|
return executor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExecutor(Executor executor) {
|
||||||
|
this.executor = executor;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
package com.xxl.job.spring.boot.autoconfigure;
|
||||||
|
|
||||||
|
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@ConditionalOnClass({XxlJobSpringExecutor.class})
|
||||||
|
@EnableConfigurationProperties(XxlJobProperties.class)
|
||||||
|
@ConditionalOnProperty(name = "xxl.job.executor.enabled")
|
||||||
|
public class XxlJobSpringBootAutoConfiguration {
|
||||||
|
private final XxlJobProperties xxlJobProperties;
|
||||||
|
private Logger logger = LoggerFactory.getLogger(XxlJobSpringBootAutoConfiguration.class);
|
||||||
|
|
||||||
|
public XxlJobSpringBootAutoConfiguration(XxlJobProperties xxlJobProperties) {
|
||||||
|
this.xxlJobProperties = xxlJobProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public XxlJobSpringExecutor xxlJobExecutor() {
|
||||||
|
logger.info(">>>>>>>>>>> xxl-job config init.");
|
||||||
|
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
|
||||||
|
xxlJobSpringExecutor.setAdminAddresses(xxlJobProperties.getAdmin().getAddresses());
|
||||||
|
xxlJobSpringExecutor.setAppname(xxlJobProperties.getExecutor().getAppname());
|
||||||
|
if (Objects.nonNull(xxlJobProperties.getExecutor().getAddress()) && !xxlJobProperties.getExecutor().getAddress().isEmpty()) {
|
||||||
|
xxlJobSpringExecutor.setAddress(xxlJobProperties.getExecutor().getAddress());
|
||||||
|
}
|
||||||
|
if (Objects.nonNull(xxlJobProperties.getExecutor().getIp()) && !xxlJobProperties.getExecutor().getIp().isEmpty()) {
|
||||||
|
xxlJobSpringExecutor.setIp(xxlJobProperties.getExecutor().getIp());
|
||||||
|
}
|
||||||
|
if (Objects.nonNull(xxlJobProperties.getExecutor().getPort()) && xxlJobProperties.getExecutor().getPort() > 0) {
|
||||||
|
xxlJobSpringExecutor.setPort(xxlJobProperties.getExecutor().getPort());
|
||||||
|
}
|
||||||
|
xxlJobSpringExecutor.setAccessToken(xxlJobProperties.getAccessToken());
|
||||||
|
xxlJobSpringExecutor.setLogPath(xxlJobProperties.getExecutor().getLogPath());
|
||||||
|
xxlJobSpringExecutor.setLogRetentionDays(xxlJobProperties.getExecutor().getLogretentiondays());
|
||||||
|
return xxlJobSpringExecutor;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"name": "xxl.job.enabled",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"description": "xxl job enabled",
|
||||||
|
"defaultValue": false,
|
||||||
|
"sourceType": "com.xxl.job.spring.boot.autoconfigure.XxlJobProperties",
|
||||||
|
"sourceMethod": "isEnabled"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "xxl.job.admin.addresses",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"description": "xxl job admin addresses",
|
||||||
|
"defaultValue": "http://localhost:8080/xxl-job-admin",
|
||||||
|
"sourceType": "com.xxl.job.spring.boot.autoconfigure.XxlJobProperties$Admin",
|
||||||
|
"sourceMethod": "getAddresses"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "xxl.job.accessToken",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"description": "xxl job access token",
|
||||||
|
"defaultValue": "defaultToken",
|
||||||
|
"sourceType": "com.xxl.job.spring.boot.autoconfigure.XxlJobProperties",
|
||||||
|
"sourceMethod": "getAccessToken"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "xxl.job.executor.appname",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"description": "xxl job executor app name",
|
||||||
|
"defaultValue": "",
|
||||||
|
"sourceType": "com.xxl.job.spring.boot.autoconfigure.XxlJobProperties$Executor",
|
||||||
|
"sourceMethod": "getAppname"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "xxl.job.executor.address",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"description": "xxl job executor address",
|
||||||
|
"defaultValue": "",
|
||||||
|
"sourceType": "com.xxl.job.spring.boot.autoconfigure.XxlJobProperties$Executor",
|
||||||
|
"sourceMethod": "getAddress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "xxl.job.executor.ip",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"description": "xxl job executor ip",
|
||||||
|
"defaultValue": "",
|
||||||
|
"sourceType": "com.xxl.job.spring.boot.autoconfigure.XxlJobProperties$Executor",
|
||||||
|
"sourceMethod": "getIp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "xxl.job.executor.port",
|
||||||
|
"type": "java.lang.Integer",
|
||||||
|
"description": "xxl job executor port",
|
||||||
|
"defaultValue": 0,
|
||||||
|
"sourceType": "com.xxl.job.spring.boot.autoconfigure.XxlJobProperties$Executor",
|
||||||
|
"sourceMethod": "getPort"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "xxl.job.executor.logPath",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"description": "xxl job executor log path",
|
||||||
|
"defaultValue": "",
|
||||||
|
"sourceType": "com.xxl.job.spring.boot.autoconfigure.XxlJobProperties$Executor",
|
||||||
|
"sourceMethod": "getLogPath"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "xxl.job.executor.logretentiondays",
|
||||||
|
"type": "java.lang.Integer",
|
||||||
|
"description": "xxl job executor log retention days",
|
||||||
|
"defaultValue": 0,
|
||||||
|
"sourceType": "com.xxl.job.spring.boot.autoconfigure.XxlJobProperties$Executor",
|
||||||
|
"sourceMethod": "getLogretentiondays"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hints": []
|
||||||
|
}
|
@ -0,0 +1 @@
|
|||||||
|
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.xxl.job.spring.boot.autoconfigure.XxlJobSpringBootAutoConfiguration
|
Loading…
Reference in new issue