diff --git a/data/src/main/java/com/sdm/data/config/xxljob/XxlJobConfig.java b/data/src/main/java/com/sdm/data/config/xxljob/XxlJobConfig.java
new file mode 100644
index 00000000..6e66d22b
--- /dev/null
+++ b/data/src/main/java/com/sdm/data/config/xxljob/XxlJobConfig.java
@@ -0,0 +1,90 @@
+package com.sdm.data.config.xxljob;
+
+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;
+
+/**
+ * xxl-job config
+ *
+ * @author xuxueli 2017-04-28
+ */
+@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、引入依赖:
+ *
+ * org.springframework.cloud
+ * spring-cloud-commons
+ * ${version}
+ *
+ *
+ * 2、配置文件,或者容器启动变量
+ * spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
+ *
+ * 3、获取IP
+ * String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+ */
+
+
+}
\ No newline at end of file
diff --git a/data/src/main/java/com/sdm/data/schedule/DataStorageMonitorSchedule.java b/data/src/main/java/com/sdm/data/schedule/DataStorageMonitorSchedule.java
new file mode 100644
index 00000000..a2cfbb25
--- /dev/null
+++ b/data/src/main/java/com/sdm/data/schedule/DataStorageMonitorSchedule.java
@@ -0,0 +1,28 @@
+package com.sdm.data.schedule;
+
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+@Slf4j
+@RequiredArgsConstructor
+public class DataStorageMonitorSchedule {
+
+ @Autowired
+ private DataStorageMonitorScheduleExcutor dataStorageMonitorScheduleService;
+
+ /**
+ * 定时筛选存储空间达到阈值的用户 发送告警消息
+ */
+ @XxlJob("dataStorageMonitorHandler")
+ public void checkDataStorageSpaceAndSendAlert() throws Exception {
+ log.info("开始执行定时筛选存储空间达到阈值的用户任务");
+ // 业务逻辑方法调度
+ dataStorageMonitorScheduleService.run();
+ log.info("定时筛选存储空间达到阈值的用户任务执行完成");
+ }
+
+}
diff --git a/data/src/main/java/com/sdm/data/job/DataStorageMonitorJob.java b/data/src/main/java/com/sdm/data/schedule/DataStorageMonitorScheduleExcutor.java
similarity index 79%
rename from data/src/main/java/com/sdm/data/job/DataStorageMonitorJob.java
rename to data/src/main/java/com/sdm/data/schedule/DataStorageMonitorScheduleExcutor.java
index 000318ee..4d0448ee 100644
--- a/data/src/main/java/com/sdm/data/job/DataStorageMonitorJob.java
+++ b/data/src/main/java/com/sdm/data/schedule/DataStorageMonitorScheduleExcutor.java
@@ -1,5 +1,4 @@
-package com.sdm.data.job;
-
+package com.sdm.data.schedule;
import com.alibaba.fastjson2.JSON;
import com.sdm.common.common.SdmResponse;
@@ -12,33 +11,30 @@ import com.sdm.common.feign.impl.system.SysUserFeignClientImpl;
import com.sdm.common.service.UserNameCacheService;
import com.sdm.data.model.entity.FileStorageQuota;
import com.sdm.data.service.DataStorageAnalysis;
-import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-@Component
@Slf4j
-@RequiredArgsConstructor
-public class DataStorageMonitorJob {
+@Service
+public class DataStorageMonitorScheduleExcutor {
- private final DataStorageAnalysis dataStorageAnalysis;
- private final MessageFeignClientImpl messageFeignClient;
- private final SysUserFeignClientImpl sysUserFeignClient;
- private final UserNameCacheService userNameCacheService;
+ @Autowired
+ private DataStorageAnalysis dataStorageAnalysis;
+ @Autowired
+ private MessageFeignClientImpl messageFeignClient;
+ @Autowired
+ private SysUserFeignClientImpl sysUserFeignClient;
+ @Autowired
+ private UserNameCacheService userNameCacheService;
- /**
- * 定时筛选存储空间达到阈值的用户 发送告警消息
- */
- @Scheduled(cron = "${data.storage-monitor.cron:0 */10 * * * ?}")
- public void checkDataStorageSpaceAndSendAlert() {
- log.info("开始执行定时筛选存储空间达到阈值的用户任务");
+ public void run() {
try {
SdmResponse> sdmResponse = dataStorageAnalysis.listAllUserQuotaForJob();
if (CollectionUtils.isNotEmpty(sdmResponse.getData())) {
@@ -73,11 +69,9 @@ public class DataStorageMonitorJob {
}
});
}
- log.info("定时筛选存储空间达到阈值的用户任务执行完成");
} catch (Exception e) {
log.error("定时筛选存储空间达到阈值的用户任务执行失败", e);
}
-
}
}
diff --git a/data/src/main/resources/application-dev-190.yml b/data/src/main/resources/application-dev-190.yml
index d23b4a0c..8f366f92 100644
--- a/data/src/main/resources/application-dev-190.yml
+++ b/data/src/main/resources/application-dev-190.yml
@@ -132,4 +132,35 @@ security:
data:
storage-monitor:
- cron: 0 0 0/1 * * ?
\ No newline at end of file
+ cron: 0 0 0/1 * * ?
+
+
+# xxljob 配置开始
+# xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+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
+ # 执行器应用名称 服务名-job-executor
+ appname: data-job-executor
+ # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册
+ address:
+ # 执行器IP
+ ip:
+ # 执行器端口,为了好记,web服务端口+1000
+ port: 8104
+ # 执行器日志路径
+ logpath: /home/app/data/xxljob
+ # 执行器日志保留天数
+ logretentiondays: 14
+ # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02"
+ excludedpackage:
+# xxljob 配置结束
\ No newline at end of file
diff --git a/data/src/main/resources/application-dev-65.yml b/data/src/main/resources/application-dev-65.yml
index fdce632c..e65058f3 100644
--- a/data/src/main/resources/application-dev-65.yml
+++ b/data/src/main/resources/application-dev-65.yml
@@ -132,4 +132,35 @@ security:
data:
storage-monitor:
- cron: 0 0 0/1 * * ?
\ No newline at end of file
+ cron: 0 0 0/1 * * ?
+
+
+# xxljob 配置开始
+# xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+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
+ # 执行器应用名称 服务名-job-executor
+ appname: data-job-executor
+ # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册
+ address:
+ # 执行器IP
+ ip:
+ # 执行器端口,为了好记,web服务端口+1000
+ port: 8104
+ # 执行器日志路径
+ logpath: /home/app/data/xxljob
+ # 执行器日志保留天数
+ logretentiondays: 14
+ # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02"
+ excludedpackage:
+# xxljob 配置结束
\ No newline at end of file
diff --git a/data/src/main/resources/application-local.yml b/data/src/main/resources/application-local.yml
index 2ddc4efc..967ed5ed 100644
--- a/data/src/main/resources/application-local.yml
+++ b/data/src/main/resources/application-local.yml
@@ -142,4 +142,34 @@ data:
# 0单机处理,可以指向本地,1负载均衡轮询
serverType: 0
#serverIp: 192.168.65.161
-serverIp: 192.168.65.73
\ No newline at end of file
+serverIp: 192.168.65.73
+
+# xxljob 配置开始
+# xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+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
+ # 执行器应用名称 服务名-job-executor
+ appname: data-job-executor
+ # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册
+ address:
+ # 执行器IP
+ ip:
+ # 执行器端口,为了好记,web服务端口+1000
+ port: 8104
+ # 执行器日志路径
+ logpath: D:\home\app\pbs\xxljob
+ # 执行器日志保留天数
+ logretentiondays: 14
+ # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02"
+ excludedpackage:
+# xxljob 配置结束
\ No newline at end of file
diff --git a/data/src/main/resources/application-lyric.yml b/data/src/main/resources/application-lyric.yml
index 215b0bfe..09d43d76 100644
--- a/data/src/main/resources/application-lyric.yml
+++ b/data/src/main/resources/application-lyric.yml
@@ -132,4 +132,34 @@ security:
data:
storage-monitor:
- cron: 0 0 0/1 * * ?
\ No newline at end of file
+ cron: 0 0 0/1 * * ?
+
+# xxljob 配置开始
+# xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+xxl:
+ job:
+ admin:
+ # 调度中心地址列表
+ addresses: http://192.168.30.146:7110/xxl-job-admin
+ # 调度中心访问令牌
+ accessToken: default_token
+ # xxl-job 超时时间(秒),默认3秒
+ timeout: 3
+ executor:
+ # 执行器是否启用,默认true
+ enabled: true
+ # 执行器应用名称 服务名-job-executor
+ appname: data-job-executor
+ # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册
+ address:
+ # 执行器IP
+ ip:
+ # 执行器端口,为了好记,web服务端口+1000
+ port: 8104
+ # 执行器日志路径
+ logpath: /home/app/data/xxljob
+ # 执行器日志保留天数
+ logretentiondays: 14
+ # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02"
+ excludedpackage:
+# xxljob 配置结束
\ No newline at end of file