修改:五所测试,gpl问题解决.定时任务xxljob拆分独立服务
This commit is contained in:
85
job/pom.xml
Normal file
85
job/pom.xml
Normal file
@@ -0,0 +1,85 @@
|
||||
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.sdm</groupId>
|
||||
<artifactId>SDM</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>job</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>job</name>
|
||||
<description>job</description>
|
||||
<properties>
|
||||
<java.version>17</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<spring-boot.version>3.3.5</spring-boot.version>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<!-- 引入模块common -->
|
||||
<dependency>
|
||||
<groupId>com.sdm</groupId>
|
||||
<artifactId>common</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>*</groupId>
|
||||
<artifactId>*</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.14.0</version>
|
||||
</dependency>
|
||||
<!-- XXL-JOB 核心依赖 -->
|
||||
<dependency>
|
||||
<groupId>com.xuxueli</groupId>
|
||||
<artifactId>xxl-job-core</artifactId>
|
||||
<version>3.3.2</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-dependencies</artifactId>
|
||||
<version>${spring-boot.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</exclude>
|
||||
</excludes>
|
||||
<includeSystemScope>true</includeSystemScope>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
29
job/src/main/java/com/sdm/job/JobApplication.java
Normal file
29
job/src/main/java/com/sdm/job/JobApplication.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package com.sdm.job;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.FilterType;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
@SpringBootApplication(scanBasePackages = {"com.sdm.job","com.sdm.common"})
|
||||
@EnableDiscoveryClient
|
||||
@EnableScheduling
|
||||
@EnableFeignClients(basePackages = "com.sdm.common.feign")
|
||||
@ComponentScan(
|
||||
excludeFilters = {
|
||||
@ComponentScan.Filter(
|
||||
type = FilterType.ASSIGNABLE_TYPE,
|
||||
classes = com.sdm.common.aspect.DictTagsAutoFillAspect.class
|
||||
)
|
||||
}
|
||||
)
|
||||
public class JobApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(JobApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
85
job/src/main/java/com/sdm/job/config/XxlJobConfig.java
Normal file
85
job/src/main/java/com/sdm/job/config/XxlJobConfig.java
Normal file
@@ -0,0 +1,85 @@
|
||||
package com.sdm.job.config;
|
||||
|
||||
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
||||
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;
|
||||
|
||||
@Configuration
|
||||
public class XxlJobConfig {
|
||||
private static final Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
|
||||
|
||||
@Value("${xxl.job.admin.addresses}")
|
||||
private String adminAddresses;
|
||||
|
||||
@Value("${xxl.job.admin.accessToken}")
|
||||
private String accessToken;
|
||||
|
||||
@Value("${xxl.job.admin.timeout}")
|
||||
private int timeout;
|
||||
|
||||
@Value("${xxl.job.executor.enabled}")
|
||||
private Boolean enabled;
|
||||
|
||||
@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;
|
||||
|
||||
@Value("${xxl.job.executor.excludedpackage}")
|
||||
private String excludedPackage;
|
||||
|
||||
|
||||
@Bean
|
||||
public XxlJobSpringExecutor xxlJobExecutor() {
|
||||
logger.info(">>>>>>>>>>> xxl-job config init.");
|
||||
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
|
||||
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
|
||||
xxlJobSpringExecutor.setAccessToken(accessToken);
|
||||
xxlJobSpringExecutor.setTimeout(timeout);
|
||||
xxlJobSpringExecutor.setEnabled(enabled);
|
||||
xxlJobSpringExecutor.setAppname(appname);
|
||||
xxlJobSpringExecutor.setAddress(address);
|
||||
xxlJobSpringExecutor.setIp(ip);
|
||||
xxlJobSpringExecutor.setPort(port);
|
||||
xxlJobSpringExecutor.setLogPath(logPath);
|
||||
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
|
||||
xxlJobSpringExecutor.setExcludedPackage(excludedPackage);
|
||||
|
||||
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();
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
31
job/src/main/java/com/sdm/job/schedule/DataSchedule.java
Normal file
31
job/src/main/java/com/sdm/job/schedule/DataSchedule.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package com.sdm.job.schedule;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.feign.inter.data.IDataScheduleFeignClient;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
// 后期多节点部署,优化成分布式定时任务
|
||||
@Component
|
||||
@Slf4j
|
||||
public class DataSchedule {
|
||||
|
||||
@Autowired
|
||||
private IDataScheduleFeignClient dataScheduleFeignClient;
|
||||
|
||||
/**
|
||||
* 定时筛选存储空间达到阈值的用户 发送告警消息
|
||||
*/
|
||||
@XxlJob("dataStorageMonitorHandler")
|
||||
public void checkDataStorageSpaceAndSendAlert() throws Exception {
|
||||
log.info("开始执行定时筛选存储空间达到阈值的用户任务");
|
||||
// 业务逻辑方法调度
|
||||
SdmResponse<String> response = dataScheduleFeignClient.dataStorageMonitor();
|
||||
log.info("定时筛选存储空间达到阈值的用户任务执行完成");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
30
job/src/main/java/com/sdm/job/schedule/PbsSchedule.java
Normal file
30
job/src/main/java/com/sdm/job/schedule/PbsSchedule.java
Normal file
@@ -0,0 +1,30 @@
|
||||
package com.sdm.job.schedule;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.feign.inter.pbs.IPbsScheduleFeignClient;
|
||||
import com.sdm.common.utils.MdcUtil;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
// 后期多节点部署,优化成分布式定时任务
|
||||
@Component
|
||||
public class PbsSchedule {
|
||||
|
||||
@Autowired
|
||||
private IPbsScheduleFeignClient pbsScheduleFeignClient;
|
||||
|
||||
// xxljob平台配置定时任务
|
||||
@XxlJob("hpcJobStatusHandler")
|
||||
public void hpcJobStatusHandler() throws Exception {
|
||||
String traceId = MdcUtil.generateAndPutTraceId();
|
||||
XxlJobHelper.log("XXL-JOB:拉起Hpc任务更新开始traceId:{}",traceId);
|
||||
SdmResponse<String> response = pbsScheduleFeignClient.hpcJobStatusSync();
|
||||
XxlJobHelper.log("XXL-JOB:拉起Hpc任务更新结束traceId:{}",traceId);
|
||||
MdcUtil.removeTraceId();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
72
job/src/main/java/com/sdm/job/schedule/ProjectSchedule.java
Normal file
72
job/src/main/java/com/sdm/job/schedule/ProjectSchedule.java
Normal file
@@ -0,0 +1,72 @@
|
||||
package com.sdm.job.schedule;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.feign.inter.project.IProjectScheduleFeignClient;
|
||||
import com.sdm.common.utils.MdcUtil;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
// 后期多节点部署,优化成分布式定时任务
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ProjectSchedule {
|
||||
|
||||
@Autowired
|
||||
private IProjectScheduleFeignClient projectScheduleFeignClient;
|
||||
|
||||
// xxljob平台配置定时任务
|
||||
@XxlJob("commitmentDeadlineStatusHandler")
|
||||
public void commitmentDeadlineStatusHandler() throws Exception {
|
||||
String traceId = MdcUtil.generateAndPutTraceId();
|
||||
XxlJobHelper.log("XXL-JOB:拉起commitmentDeadlineStatusHandler任务新开始traceId:{}",traceId);
|
||||
SdmResponse<String> response = projectScheduleFeignClient.commitmentDeadlineStatusHandler();
|
||||
XxlJobHelper.log("XXL-JOB:拉起commitmentDeadlineStatusHandler任务结束traceId:{}",traceId);
|
||||
MdcUtil.removeTraceId();
|
||||
}
|
||||
|
||||
@XxlJob("lyricEncExceptionHandler")
|
||||
public void lyricEncExceptionHandler() throws Exception {
|
||||
// 初始化traceId
|
||||
String traceId = MdcUtil.generateAndPutTraceId();
|
||||
XxlJobHelper.log("{} XXL-JOB:拉起lyric异常任务信息开始,param:{}", traceId);
|
||||
long startTime = System.currentTimeMillis();
|
||||
SdmResponse response = projectScheduleFeignClient.syncException();
|
||||
long endTime = System.currentTimeMillis();
|
||||
long second = (endTime - startTime) / 1000;
|
||||
log.info("{} lyricEncExceptionHandler cost [{}] s", traceId,second);
|
||||
log.info("{} lyricEncExceptionHandler result :{}", traceId, JSON.toJSONString(response));
|
||||
XxlJobHelper.log("{} XXL-JOB:拉起lyric异常任务信息结束:{},耗时:{} s", traceId,JSON.toJSONString(response),second);
|
||||
// 销毁
|
||||
MdcUtil.removeTraceId();
|
||||
}
|
||||
|
||||
// xxljob平台配置定时任务
|
||||
@XxlJob("lyricTodoListHandler")
|
||||
public void lyricTodoListHandler() throws Exception {
|
||||
// 初始化traceId
|
||||
String traceId = MdcUtil.generateAndPutTraceId();
|
||||
String param = XxlJobHelper.getJobParam();
|
||||
if(StringUtils.isBlank(param)){
|
||||
log.warn("{} lyricTodoListHandler param null",traceId);
|
||||
return;
|
||||
}
|
||||
XxlJobHelper.log("{} XXL-JOB:拉起lyric代办任务开始,param:{}", traceId,param);
|
||||
JSONObject paramJson = JSONObject.parseObject(param);
|
||||
long startTime = System.currentTimeMillis();
|
||||
SdmResponse response = projectScheduleFeignClient.lyricTodoListSchedule(paramJson.getLong("tenantId"), paramJson.getLong("userId"));
|
||||
long endTime = System.currentTimeMillis();
|
||||
long second = (endTime - startTime) / 1000;
|
||||
log.info("{} lyricTodoListHandler cost [{}] s", traceId,second);
|
||||
log.info("{} lyricTodoListHandler result :{}", traceId,JSON.toJSONString(response));
|
||||
XxlJobHelper.log("{} XXL-JOB:拉起lyric代办任务结束:{},耗时:{} s", traceId,JSON.toJSONString(response),second);
|
||||
// 销毁
|
||||
MdcUtil.removeTraceId();
|
||||
}
|
||||
|
||||
}
|
||||
72
job/src/main/resources/application-dev-100.yml
Normal file
72
job/src/main/resources/application-dev-100.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
server:
|
||||
port: 7108
|
||||
tomcat:
|
||||
# 等待客户端发送数据的超时(毫秒)
|
||||
connection-timeout: 60000
|
||||
# Keep-Alive 长连接保持时间(毫秒)
|
||||
keep-alive-timeout: 30000
|
||||
# 异步超时(根据业务需要)
|
||||
async-timeout: -1
|
||||
|
||||
spring:
|
||||
autoconfigure:
|
||||
exclude:
|
||||
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
|
||||
- org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
|
||||
|
||||
application:
|
||||
name: job
|
||||
# 关闭 Spring 的 “内存缓冲”
|
||||
codec:
|
||||
max-in-memory-size: -1
|
||||
mvc:
|
||||
async:
|
||||
request-timeout: -1 # 🔥 关闭 Spring 异步超时(关键!)
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
server-addr: 192.168.190.100:5848
|
||||
group: DEV_GROUP
|
||||
enabled: true
|
||||
management:
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
include: health,info
|
||||
endpoint:
|
||||
health:
|
||||
show-details: always
|
||||
|
||||
lombok:
|
||||
anyConstructor:
|
||||
addConstructorProperties: true
|
||||
|
||||
|
||||
# xxljob 配置开始
|
||||
xxl:
|
||||
job:
|
||||
admin:
|
||||
# 调度中心地址列表
|
||||
addresses: http://192.168.190.100:7110/xxl-job-admin
|
||||
# 调度中心访问令牌
|
||||
accessToken: default_token
|
||||
# xxl-job 超时时间(秒),默认3秒
|
||||
timeout: 3
|
||||
executor:
|
||||
# 执行器是否启用,默认true
|
||||
enabled: true
|
||||
# 执行器应用名称
|
||||
appname: spdm-job-executor
|
||||
# 执行器注册地址:默认使用address注册,若为null则使用ip:port注册
|
||||
address:
|
||||
# 执行器IP
|
||||
ip: ${XXL_JOB_EXECUTOR_IP:}
|
||||
# 执行器端口,为了好记,web服务端口+1000
|
||||
port: 8108
|
||||
# 执行器日志路径
|
||||
logpath: /home/app/pbs/xxljob
|
||||
# 执行器日志保留天数
|
||||
logretentiondays: 14
|
||||
# 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02"
|
||||
excludedpackage:
|
||||
# xxljob 配置结束
|
||||
72
job/src/main/resources/application-dev-190.yml
Normal file
72
job/src/main/resources/application-dev-190.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
server:
|
||||
port: 7108
|
||||
tomcat:
|
||||
# 等待客户端发送数据的超时(毫秒)
|
||||
connection-timeout: 60000
|
||||
# Keep-Alive 长连接保持时间(毫秒)
|
||||
keep-alive-timeout: 30000
|
||||
# 异步超时(根据业务需要)
|
||||
async-timeout: -1
|
||||
|
||||
spring:
|
||||
autoconfigure:
|
||||
exclude:
|
||||
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
|
||||
- org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
|
||||
|
||||
application:
|
||||
name: job
|
||||
# 关闭 Spring 的 “内存缓冲”
|
||||
codec:
|
||||
max-in-memory-size: -1
|
||||
mvc:
|
||||
async:
|
||||
request-timeout: -1 # 🔥 关闭 Spring 异步超时(关键!)
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
server-addr: 192.168.190.161:8848
|
||||
group: DEV_GROUP
|
||||
enabled: true
|
||||
management:
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
include: health,info
|
||||
endpoint:
|
||||
health:
|
||||
show-details: always
|
||||
|
||||
lombok:
|
||||
anyConstructor:
|
||||
addConstructorProperties: true
|
||||
|
||||
|
||||
# xxljob 配置开始
|
||||
xxl:
|
||||
job:
|
||||
admin:
|
||||
# 调度中心地址列表
|
||||
addresses: http://192.168.190.161:7110/xxl-job-admin
|
||||
# 调度中心访问令牌
|
||||
accessToken: default_token
|
||||
# xxl-job 超时时间(秒),默认3秒
|
||||
timeout: 3
|
||||
executor:
|
||||
# 执行器是否启用,默认true
|
||||
enabled: true
|
||||
# 执行器应用名称
|
||||
appname: spdm-job-executor
|
||||
# 执行器注册地址:默认使用address注册,若为null则使用ip:port注册
|
||||
address:
|
||||
# 执行器IP
|
||||
ip: ${XXL_JOB_EXECUTOR_IP:}
|
||||
# 执行器端口,为了好记,web服务端口+1000
|
||||
port: 8108
|
||||
# 执行器日志路径
|
||||
logpath: /home/app/pbs/xxljob
|
||||
# 执行器日志保留天数
|
||||
logretentiondays: 14
|
||||
# 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02"
|
||||
excludedpackage:
|
||||
# xxljob 配置结束
|
||||
72
job/src/main/resources/application-dev-65.yml
Normal file
72
job/src/main/resources/application-dev-65.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
server:
|
||||
port: 7108
|
||||
tomcat:
|
||||
# 等待客户端发送数据的超时(毫秒)
|
||||
connection-timeout: 60000
|
||||
# Keep-Alive 长连接保持时间(毫秒)
|
||||
keep-alive-timeout: 30000
|
||||
# 异步超时(根据业务需要)
|
||||
async-timeout: -1
|
||||
|
||||
spring:
|
||||
autoconfigure:
|
||||
exclude:
|
||||
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
|
||||
- org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
|
||||
|
||||
application:
|
||||
name: job
|
||||
# 关闭 Spring 的 “内存缓冲”
|
||||
codec:
|
||||
max-in-memory-size: -1
|
||||
mvc:
|
||||
async:
|
||||
request-timeout: -1 # 🔥 关闭 Spring 异步超时(关键!)
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
server-addr: 192.168.65.161:8848
|
||||
group: DEV_GROUP
|
||||
enabled: true
|
||||
management:
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
include: health,info
|
||||
endpoint:
|
||||
health:
|
||||
show-details: always
|
||||
|
||||
lombok:
|
||||
anyConstructor:
|
||||
addConstructorProperties: true
|
||||
|
||||
|
||||
# xxljob 配置开始
|
||||
xxl:
|
||||
job:
|
||||
admin:
|
||||
# 调度中心地址列表
|
||||
addresses: http://192.168.65.161:7110/xxl-job-admin
|
||||
# 调度中心访问令牌
|
||||
accessToken: default_token
|
||||
# xxl-job 超时时间(秒),默认3秒
|
||||
timeout: 3
|
||||
executor:
|
||||
# 执行器是否启用,默认true
|
||||
enabled: true
|
||||
# 执行器应用名称
|
||||
appname: spdm-job-executor
|
||||
# 执行器注册地址:默认使用address注册,若为null则使用ip:port注册
|
||||
address:
|
||||
# 执行器IP
|
||||
ip: ${XXL_JOB_EXECUTOR_IP:}
|
||||
# 执行器端口,为了好记,web服务端口+1000
|
||||
port: 8108
|
||||
# 执行器日志路径
|
||||
logpath: /home/app/pbs/xxljob
|
||||
# 执行器日志保留天数
|
||||
logretentiondays: 14
|
||||
# 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02"
|
||||
excludedpackage:
|
||||
# xxljob 配置结束
|
||||
72
job/src/main/resources/application-local.yml
Normal file
72
job/src/main/resources/application-local.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
server:
|
||||
port: 7108
|
||||
tomcat:
|
||||
# 等待客户端发送数据的超时(毫秒)
|
||||
connection-timeout: 60000
|
||||
# Keep-Alive 长连接保持时间(毫秒)
|
||||
keep-alive-timeout: 30000
|
||||
# 异步超时(根据业务需要)
|
||||
async-timeout: -1
|
||||
|
||||
spring:
|
||||
autoconfigure:
|
||||
exclude:
|
||||
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
|
||||
- org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
|
||||
|
||||
application:
|
||||
name: job
|
||||
# 关闭 Spring 的 “内存缓冲”
|
||||
codec:
|
||||
max-in-memory-size: -1
|
||||
mvc:
|
||||
async:
|
||||
request-timeout: -1 # 🔥 关闭 Spring 异步超时(关键!)
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
server-addr: 192.168.2.166:8848
|
||||
group: DEV_GROUP
|
||||
enabled: true
|
||||
management:
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
include: health,info
|
||||
endpoint:
|
||||
health:
|
||||
show-details: always
|
||||
|
||||
lombok:
|
||||
anyConstructor:
|
||||
addConstructorProperties: true
|
||||
|
||||
|
||||
# xxljob 配置开始
|
||||
xxl:
|
||||
job:
|
||||
admin:
|
||||
# 调度中心地址列表
|
||||
addresses: http://127.0.0.1:7110/xxl-job-admin
|
||||
# 调度中心访问令牌
|
||||
accessToken: default_token
|
||||
# xxl-job 超时时间(秒),默认3秒
|
||||
timeout: 3
|
||||
executor:
|
||||
# 执行器是否启用,默认true
|
||||
enabled: true
|
||||
# 执行器应用名称
|
||||
appname: spdm-job-executor
|
||||
# 执行器注册地址:默认使用address注册,若为null则使用ip:port注册
|
||||
address:
|
||||
# 执行器IP
|
||||
ip: ${XXL_JOB_EXECUTOR_IP:}
|
||||
# 执行器端口,为了好记,web服务端口+1000
|
||||
port: 8108
|
||||
# 执行器日志路径
|
||||
logpath: /home/app/pbs/xxljob
|
||||
# 执行器日志保留天数
|
||||
logretentiondays: 14
|
||||
# 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02"
|
||||
excludedpackage:
|
||||
# xxljob 配置结束
|
||||
72
job/src/main/resources/application-lyric.yml
Normal file
72
job/src/main/resources/application-lyric.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
server:
|
||||
port: 7108
|
||||
tomcat:
|
||||
# 等待客户端发送数据的超时(毫秒)
|
||||
connection-timeout: 60000
|
||||
# Keep-Alive 长连接保持时间(毫秒)
|
||||
keep-alive-timeout: 30000
|
||||
# 异步超时(根据业务需要)
|
||||
async-timeout: -1
|
||||
|
||||
spring:
|
||||
autoconfigure:
|
||||
exclude:
|
||||
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
|
||||
- org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
|
||||
|
||||
application:
|
||||
name: job
|
||||
# 关闭 Spring 的 “内存缓冲”
|
||||
codec:
|
||||
max-in-memory-size: -1
|
||||
mvc:
|
||||
async:
|
||||
request-timeout: -1 # 🔥 关闭 Spring 异步超时(关键!)
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
server-addr: 192.168.30.146:8848
|
||||
group: DEV_GROUP
|
||||
enabled: true
|
||||
management:
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
include: health,info
|
||||
endpoint:
|
||||
health:
|
||||
show-details: always
|
||||
|
||||
lombok:
|
||||
anyConstructor:
|
||||
addConstructorProperties: true
|
||||
|
||||
|
||||
# xxljob 配置开始
|
||||
xxl:
|
||||
job:
|
||||
admin:
|
||||
# 调度中心地址列表
|
||||
addresses: http://192.168.30.148:7110/xxl-job-admin
|
||||
# 调度中心访问令牌
|
||||
accessToken: default_token
|
||||
# xxl-job 超时时间(秒),默认3秒
|
||||
timeout: 3
|
||||
executor:
|
||||
# 执行器是否启用,默认true
|
||||
enabled: true
|
||||
# 执行器应用名称
|
||||
appname: spdm-job-executor
|
||||
# 执行器注册地址:默认使用address注册,若为null则使用ip:port注册
|
||||
address:
|
||||
# 执行器IP
|
||||
ip: ${XXL_JOB_EXECUTOR_IP:}
|
||||
# 执行器端口,为了好记,web服务端口+1000
|
||||
port: 8108
|
||||
# 执行器日志路径
|
||||
logpath: /home/app/pbs/xxljob
|
||||
# 执行器日志保留天数
|
||||
logretentiondays: 14
|
||||
# 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02"
|
||||
excludedpackage:
|
||||
# xxljob 配置结束
|
||||
3
job/src/main/resources/application.yml
Normal file
3
job/src/main/resources/application.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
spring:
|
||||
profiles:
|
||||
active: dev-65
|
||||
13
job/src/main/resources/bin/65/log.sh
Normal file
13
job/src/main/resources/bin/65/log.sh
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
# Spring Boot 项目日志查看脚本
|
||||
LOG_HOME="/home/app/job/logs"
|
||||
LOG_FILE="${LOG_HOME}/running.log"
|
||||
|
||||
|
||||
# 查看实时日志
|
||||
if [ ! -f "${LOG_FILE}" ]; then
|
||||
echo "日志文件不存在:${LOG_FILE}(可能项目未启动)"
|
||||
exit 1
|
||||
fi
|
||||
echo "正在查看实时运行日志(按 Ctrl+C 退出)... 日志路径:${LOG_FILE}"
|
||||
tail -f "${LOG_FILE}"
|
||||
45
job/src/main/resources/bin/65/start.sh
Normal file
45
job/src/main/resources/bin/65/start.sh
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
# Spring Boot 项目启动脚本
|
||||
JAR_PATH="/home/app/job"
|
||||
JAR_NAME="job-0.0.1-SNAPSHOT.jar"
|
||||
FULL_JAR_PATH="${JAR_PATH}/${JAR_NAME}"
|
||||
|
||||
# 与logback.xml保持一致的日志路径
|
||||
LOG_HOME="/home/app/job/logs"
|
||||
LOG_FILE="${LOG_HOME}/running.log"
|
||||
|
||||
# JVM参数
|
||||
JVM_OPTS="-Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_HOME}/heapdump.hprof"
|
||||
|
||||
# 函数定义
|
||||
check_jar_exists() {
|
||||
if [ ! -f "${FULL_JAR_PATH}" ]; then
|
||||
echo "ERROR: Jar包不存在!路径:${FULL_JAR_PATH}"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
get_running_pid() {
|
||||
ps -ef | grep "${JAR_NAME}" | grep -v "grep" | awk '{print $2}'
|
||||
}
|
||||
|
||||
# 检查是否已运行
|
||||
PID=$(get_running_pid)
|
||||
if [ -n "${PID}" ]; then
|
||||
echo "项目已在运行中!PID: ${PID}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 检查Jar包是否存在
|
||||
check_jar_exists
|
||||
|
||||
# 确保日志目录存在
|
||||
if [ ! -d "${LOG_HOME}" ]; then
|
||||
mkdir -p "${LOG_HOME}"
|
||||
echo "日志目录不存在,已自动创建:${LOG_HOME}"
|
||||
fi
|
||||
|
||||
|
||||
# 启动项目
|
||||
echo "正在启动项目..."
|
||||
nohup java ${JVM_OPTS} -Dspring.profiles.active=dev-65 -DXXL_JOB_EXECUTOR_IP=192.168.65.161 -Dspdm.enkey=XzKRqYnUypdE8VJ41yo/i0rMpZ0IlztSZ1PqWhr0q/c= -jar "${FULL_JAR_PATH}" > "${LOG_FILE}" 2>&1 &
|
||||
107
job/src/main/resources/logback.xml
Normal file
107
job/src/main/resources/logback.xml
Normal file
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!-- 彩色日志 -->
|
||||
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
|
||||
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
|
||||
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
|
||||
|
||||
<!-- 彩色日志格式 -->
|
||||
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr([%X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr([%15.15t]){faint} %clr(%logger){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />
|
||||
<property name="FILE_LOG_PATTERN" value="[%X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%15.15t] %logger : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" />
|
||||
|
||||
<!-- 日志文件存储地址 -->
|
||||
<property name="LOG_HOME" value="/home/app/job/logs" />
|
||||
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- ===================== running.log 输出(3GB上限) ===================== -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${LOG_HOME}/running.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<FileNamePattern>${LOG_HOME}/running.log.%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
<MaxHistory>15</MaxHistory>
|
||||
<TotalSizeCap>3GB</TotalSizeCap>
|
||||
<cleanHistoryOnStart>true</cleanHistoryOnStart>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- ===================== core.log 专用输出(2GB上限) ===================== -->
|
||||
<appender name="CORE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${LOG_HOME}/core.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<FileNamePattern>${LOG_HOME}/core.log.%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
<MaxHistory>15</MaxHistory>
|
||||
<TotalSizeCap>2GB</TotalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>[%X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%15.15t] %X{callerInfo} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}</pattern>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 日志输出级别 -->
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT" />
|
||||
<appender-ref ref="FILE" />
|
||||
</root>
|
||||
|
||||
<!-- 绑定 FeignClient -->
|
||||
<logger name="FeignClient" level="INFO" additivity="false">
|
||||
<appender-ref ref="FILE" />
|
||||
<appender-ref ref="STDOUT" />
|
||||
</logger>
|
||||
|
||||
<!-- 绑定 coreLogger -->
|
||||
<logger name="coreLogger" level="INFO" additivity="false">
|
||||
<appender-ref ref="CORE_FILE" />
|
||||
<appender-ref ref="STDOUT" />
|
||||
</logger>
|
||||
|
||||
<!-- ===================== 你原来的所有 SQL/MyBatis/包日志 全部保留 ===================== -->
|
||||
<!-- MyBatis SQL语句输出配置 -->
|
||||
<logger name="org.apache.ibatis" level="DEBUG"/>
|
||||
<logger name="org.apache.ibatis.session.AutoMappingUnknownColumnBehavior" level="ERROR"/>
|
||||
<logger name="org.apache.ibatis.logging" level="DEBUG"/>
|
||||
<logger name="org.apache.ibatis.logging.jdbc" level="DEBUG"/>
|
||||
<logger name="org.apache.ibatis.logging.jdbc.BaseJdbcLogger" level="DEBUG"/>
|
||||
<logger name="org.apache.ibatis.datasource" level="DEBUG"/>
|
||||
<logger name="org.apache.ibatis.transaction" level="DEBUG"/>
|
||||
<logger name="org.apache.ibatis.cache" level="DEBUG"/>
|
||||
|
||||
<logger name="org.mybatis" level="DEBUG"/>
|
||||
<logger name="org.mybatis.spring" level="DEBUG"/>
|
||||
<logger name="org.mybatis.spring.SqlSessionUtils" level="DEBUG"/>
|
||||
<logger name="org.mybatis.spring.transaction" level="DEBUG"/>
|
||||
|
||||
<!-- MyBatis-Plus 相关日志配置 -->
|
||||
<logger name="com.baomidou.mybatisplus" level="DEBUG"/>
|
||||
<logger name="com.baomidou.mybatisplus.core" level="DEBUG"/>
|
||||
<logger name="com.baomidou.mybatisplus.core.MybatisConfiguration" level="DEBUG"/>
|
||||
<logger name="com.baomidou.mybatisplus.core.MybatisMapperRegistry" level="DEBUG"/>
|
||||
<logger name="com.baomidou.mybatisplus.core.override.MybatisMapperProxy" level="DEBUG"/>
|
||||
<logger name="com.baomidou.mybatisplus.extension" level="DEBUG"/>
|
||||
<logger name="com.baomidou.mybatisplus.extension.spring" level="DEBUG"/>
|
||||
<logger name="com.baomidou.mybatisplus.extension.MybatisPlusProperties" level="DEBUG"/>
|
||||
|
||||
<logger name="java.sql" level="DEBUG"/>
|
||||
<logger name="java.sql.Connection" level="DEBUG"/>
|
||||
<logger name="java.sql.Statement" level="DEBUG"/>
|
||||
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
|
||||
<logger name="java.sql.ResultSet" level="DEBUG"/>
|
||||
|
||||
<logger name="com.sdm.job" level="INFO"/>
|
||||
|
||||
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user