95值计算方式新增1024
This commit is contained in:
+33
-21
@@ -14,6 +14,7 @@ import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -47,7 +48,7 @@ public class TableScheduleConfig {
|
||||
epsInitialTrafficDataService.createNextMonthTables();
|
||||
}
|
||||
|
||||
// 每天12点执行 计算95带宽值/日
|
||||
// 每天0点执行 计算95带宽值/日
|
||||
@Scheduled(cron = "0 4 0 * * ?", zone = "Asia/Shanghai")
|
||||
public void calculate95BandwidthDaily() {
|
||||
// 获取昨天的日期范围(北京时间)
|
||||
@@ -59,10 +60,17 @@ public class TableScheduleConfig {
|
||||
// 95带宽值/日
|
||||
EpsInitialTrafficData queryParam = new EpsInitialTrafficData();
|
||||
queryParam.setDayOrMonth(dayOrMonth);
|
||||
epsInitialTrafficDataService.calculateBusiness95BandwidthDaily(queryParam, dailyStartTime, dailyEndTime);
|
||||
InitialSwitchInfoDetails initialSwitchInfoDetails = new InitialSwitchInfoDetails();
|
||||
initialSwitchInfoDetails.setDayOrMonth(dayOrMonth);
|
||||
initialSwitchInfoDetailsService.calculateSwitch95BandwidthDaily(initialSwitchInfoDetails, dailyStartTime, dailyEndTime);
|
||||
// 顺序执行链
|
||||
CompletableFuture.runAsync(() -> executeWithLog("业务带宽1000",
|
||||
() -> epsInitialTrafficDataService.calculateBusiness95BandwidthDaily(queryParam, dailyStartTime, dailyEndTime, "1000")))
|
||||
.thenRun(() -> executeWithLog("业务带宽1024",
|
||||
() -> epsInitialTrafficDataService.calculateBusiness95BandwidthDaily(queryParam, dailyStartTime, dailyEndTime, "1024")))
|
||||
.thenRun(() -> executeWithLog("交换机带宽1000",
|
||||
() -> initialSwitchInfoDetailsService.calculateSwitch95BandwidthDaily(initialSwitchInfoDetails, dailyStartTime, dailyEndTime, "1000")))
|
||||
.thenRun(() -> executeWithLog("交换机带宽1024",
|
||||
() -> initialSwitchInfoDetailsService.calculateSwitch95BandwidthDaily(initialSwitchInfoDetails, dailyStartTime, dailyEndTime, "1024")));
|
||||
}
|
||||
|
||||
// 每月1号0点执行 计算95带宽值/月
|
||||
@@ -76,38 +84,42 @@ public class TableScheduleConfig {
|
||||
String monthlyStartTime = firstDayOfMonth.atStartOfDay().format(TIME_FORMAT);
|
||||
String monthlyEndTime = lastDayOfMonth.atTime(23, 59, 59).format(TIME_FORMAT);
|
||||
|
||||
// 顺序执行各任务,间隔10分钟
|
||||
executeWithDelay(() -> calculateServerMonthlyBandwidth(monthlyStartTime, monthlyEndTime), 0);
|
||||
executeWithDelay(() -> calculateSwitchMonthlyBandwidth(monthlyStartTime, monthlyEndTime), 10);
|
||||
executeWithDelay(() -> calculateServerAvgMonthlyBandwidth(monthlyStartTime, monthlyEndTime), 10);
|
||||
executeWithDelay(() -> calculateSwitchAvgMonthlyBandwidth(monthlyStartTime, monthlyEndTime), 10);
|
||||
// 链式顺序执行(无额外日志封装)
|
||||
CompletableFuture.runAsync(() -> calculateServerMonthlyBandwidth(monthlyStartTime, monthlyEndTime, "1000"))
|
||||
.thenRun(() -> calculateServerMonthlyBandwidth(monthlyStartTime, monthlyEndTime, "1024"))
|
||||
.thenRun(() -> calculateSwitchMonthlyBandwidth(monthlyStartTime, monthlyEndTime, "1000"))
|
||||
.thenRun(() -> calculateSwitchMonthlyBandwidth(monthlyStartTime, monthlyEndTime, "1024"))
|
||||
.thenRun(() -> calculateServerAvgMonthlyBandwidth(monthlyStartTime, monthlyEndTime))
|
||||
.thenRun(() -> calculateSwitchAvgMonthlyBandwidth(monthlyStartTime, monthlyEndTime))
|
||||
.exceptionally(e -> {
|
||||
log.error("月度带宽计算链执行异常", e); // 仅保留最终异常捕获
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 延迟执行任务
|
||||
* 执行任务日志
|
||||
*/
|
||||
private void executeWithDelay(Runnable task, int delayMinutes) {
|
||||
private void executeWithLog(String taskName, Runnable task) {
|
||||
log.info("开始执行: {}", taskName);
|
||||
try {
|
||||
if (delayMinutes > 0) {
|
||||
Thread.sleep(delayMinutes * 60 * 1000);
|
||||
}
|
||||
task.run();
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
log.error("任务执行被中断", e);
|
||||
} catch (Exception e) {
|
||||
log.error("{} 执行失败", taskName, e);
|
||||
throw e; // 可选:是否终止后续任务
|
||||
}
|
||||
log.info("{} 执行完成", taskName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算服务器月95带宽值
|
||||
*/
|
||||
private void calculateServerMonthlyBandwidth(String monthlyStartTime, String monthlyEndTime) {
|
||||
private void calculateServerMonthlyBandwidth(String monthlyStartTime, String monthlyEndTime, String calculationMode) {
|
||||
log.info("开始计算服务器月95带宽值...");
|
||||
try {
|
||||
String dayOrMonth = "2";
|
||||
EpsInitialTrafficData queryParam = new EpsInitialTrafficData();
|
||||
queryParam.setDayOrMonth(dayOrMonth);
|
||||
epsInitialTrafficDataService.calculateBusiness95BandwidthDaily(queryParam, monthlyStartTime, monthlyEndTime);
|
||||
epsInitialTrafficDataService.calculateBusiness95BandwidthDaily(queryParam, monthlyStartTime, monthlyEndTime, calculationMode);
|
||||
log.info("服务器月95带宽值计算完成");
|
||||
} catch (Exception e) {
|
||||
log.error("计算服务器月95带宽值失败", e);
|
||||
@@ -117,13 +129,13 @@ public class TableScheduleConfig {
|
||||
/**
|
||||
* 计算交换机月95带宽值
|
||||
*/
|
||||
private void calculateSwitchMonthlyBandwidth(String monthlyStartTime, String monthlyEndTime) {
|
||||
private void calculateSwitchMonthlyBandwidth(String monthlyStartTime, String monthlyEndTime, String calculationMode) {
|
||||
log.info("开始计算交换机月95带宽值...");
|
||||
try {
|
||||
String dayOrMonth = "2";
|
||||
InitialSwitchInfoDetails queryParam = new InitialSwitchInfoDetails();
|
||||
queryParam.setDayOrMonth(dayOrMonth);
|
||||
initialSwitchInfoDetailsService.calculateSwitch95BandwidthDaily(queryParam, monthlyStartTime, monthlyEndTime);
|
||||
initialSwitchInfoDetailsService.calculateSwitch95BandwidthDaily(queryParam, monthlyStartTime, monthlyEndTime, calculationMode);
|
||||
log.info("交换机月95带宽值计算完成");
|
||||
} catch (Exception e) {
|
||||
log.error("计算交换机月95带宽值失败", e);
|
||||
|
||||
Reference in New Issue
Block a user