feat: SpringBoot 整合 xxl-job

This commit is contained in:
郝先瑞
2023-04-22 17:48:20 +08:00
parent c1827c16dc
commit 323f1c8f1f
9 changed files with 123 additions and 74 deletions

View File

@@ -0,0 +1,61 @@
package com.youlai.system.framework.xxljob;
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.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* xxl-job config
*
* @author xuxueli 2017-04-28
*/
@Configuration
@ConditionalOnProperty(name = "xxl.job.enabled")// xxl.job.enabled = true 才会自动配置
@Slf4j
public class XxlJobConfig {
@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
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;
}
}

View File

@@ -0,0 +1,21 @@
package com.youlai.system.framework.xxljob;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
@Component
public class XxlJobSampleHandler {
@XxlJob("demoJobHandler")
public void demoJobHandler() throws Exception {
XxlJobHelper.log("XXL-JOB, Hello World.");
for (int i = 0; i < 5; i++) {
XxlJobHelper.log("beat at:" + i);
TimeUnit.SECONDS.sleep(2);
}
}
}

View File

@@ -78,7 +78,26 @@ springdoc:
enabled: true
# 验证码配置
easycaptcha:
easy-captcha:
enable: true
# 验证码类型: arithmetic-算术
type: arithmetic
ttl: 120
# 验证码有效时间(单位:秒)
ttl: 120
# xxl-job 定时任务配置
xxl:
job:
# xxl-job 开关
enabled: false
admin:
# 多个地址使用,分割
addresses: http://127.0.0.1:8080/xxl-job-admin
accessToken: default_token
executor:
appname: xxl-job-executor-${spring.application.name}
address:
ip:
port: 9999
logpath: /data/applogs/xxl-job/jobhandler
logretentiondays: 30

View File

@@ -61,7 +61,26 @@ springdoc:
enabled: true
# 验证码配置
easycaptcha:
easy-captcha:
enable: true
# 验证码类型: arithmetic-算术
type: arithmetic
# 验证码有效时间(单位:秒)
ttl: 120
# xxl-job 定时任务配置
xxl:
job:
# xxl-job 开关
enabled: false
admin:
# 多个地址使用,分割
addresses: http://127.0.0.1:8080/xxl-job-admin
accessToken: default_token
executor:
appname: xxl-job-executor-${spring.application.name}
address:
ip:
port: 9999
logpath: /data/applogs/xxl-job/jobhandler
logretentiondays: 30