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

View File

@@ -1 +0,0 @@
config.name: application-dev.properties

View File

@@ -1,59 +0,0 @@
config:
name: application-dev.yml
server:
port: 8989
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://www.youlai.tech:3306/youlai_boot?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true
username: youlai
password: 123456
data:
redis:
database: 6
host: www.youlai.tech
port: 6379
password: 123456
timeout: 10s
lettuce:
pool:
min-idle: 0
max-idle: 8
max-active: 8
max-wait: -1ms
mybatis-plus:
global-config:
db-config:
# 主键ID类型
id-type: none
logic-delete-field: deleted
logic-delete-value: 1
logic-not-delete-value: 0
configuration:
# 驼峰下划线转换
map-underscore-to-camel-case: true
# 这个配置会将执行的sql打印出来在开发或测试的时候可以用
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 认证配置
auth:
token:
secret_key: SecretKey012345678901234567890123456789012345678901234567890123456789
# token 有效期(单位:秒)
token_validity: 18000
# MinIO 分布式文件系统
minio:
endpoint: http://localhost:9000
access-key: minioadmin
secret-key: minioadmin
# 存储桶名称
bucket-name: default
# 自定义域名(非必须)Nginx配置反向代理转发文件路径
custom-domain:

View File

@@ -1,2 +0,0 @@
config:
name: application-test.yml

View File

@@ -1 +0,0 @@
config.name: application.properties

View File

@@ -1,8 +0,0 @@
spring:
application:
name: youlai-boot
profiles:
active: dev
config:
name: application.yml