修改网卡、交换机采集延迟时间
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.tongran.agentserver.scheduler.service;
|
package com.tongran.agentserver.scheduler.service;
|
||||||
|
|
||||||
|
import com.tongran.agentserver.utils.AgentUtil;
|
||||||
import com.tongran.agentserver.utils.AssertLog;
|
import com.tongran.agentserver.utils.AssertLog;
|
||||||
import org.springframework.boot.CommandLineRunner;
|
import org.springframework.boot.CommandLineRunner;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
@@ -57,10 +58,13 @@ public class AppInitializer implements CommandLineRunner {
|
|||||||
dynamicTaskService.scheduleTask("memory",
|
dynamicTaskService.scheduleTask("memory",
|
||||||
businessTasks::memoryTask, 55000, 300000); // 55秒后开始,每300秒执行
|
businessTasks::memoryTask, 55000, 300000); // 55秒后开始,每300秒执行
|
||||||
|
|
||||||
|
|
||||||
|
//获取当前时间距离下一个“分钟为 0 或 5”的时间点还差多少秒
|
||||||
|
long seconds = AgentUtil.secondsToNext5Minute() * 1000;
|
||||||
// 每300秒执行网络信息采集任务
|
// 每300秒执行网络信息采集任务
|
||||||
AssertLog.info("初始化启动网络信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 65000, 300000);
|
AssertLog.info("初始化启动网络信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", seconds, 300000);
|
||||||
dynamicTaskService.scheduleTask("net",
|
dynamicTaskService.scheduleTask("net",
|
||||||
businessTasks::netTask, 65000, 300000); // 65秒后开始,每300秒执行
|
businessTasks::netTask, seconds, 300000); // 65秒后开始,每300秒执行
|
||||||
|
|
||||||
// 每300秒执行挂载信息采集任务
|
// 每300秒执行挂载信息采集任务
|
||||||
AssertLog.info("初始化启动挂载信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 75000, 300000);
|
AssertLog.info("初始化启动挂载信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 75000, 300000);
|
||||||
@@ -68,9 +72,9 @@ public class AppInitializer implements CommandLineRunner {
|
|||||||
businessTasks::pointTask, 75000, 300000); // 75秒后开始,每300秒执行
|
businessTasks::pointTask, 75000, 300000); // 75秒后开始,每300秒执行
|
||||||
|
|
||||||
// 每300秒执行交换机信息采集任务
|
// 每300秒执行交换机信息采集任务
|
||||||
AssertLog.info("初始化启动交换机信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 85000, 300000);
|
AssertLog.info("初始化启动交换机信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", seconds, 300000);
|
||||||
dynamicTaskService.scheduleTask("switchBoard",
|
dynamicTaskService.scheduleTask("switchBoard",
|
||||||
businessTasks::switchBoardTask, 85000, 300000); // 85秒后开始,每300秒执行
|
businessTasks::switchBoardTask, seconds, 300000); // 85秒后开始,每300秒执行
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import java.net.InetAddress;
|
|||||||
import java.net.NetworkInterface;
|
import java.net.NetworkInterface;
|
||||||
import java.net.SocketException;
|
import java.net.SocketException;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -103,4 +105,30 @@ public class AgentUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前时间距离下一个“分钟为 0 或 5”的时间点还差多少秒
|
||||||
|
* 例如:xx:00, xx:05, xx:10, ..., xx:55
|
||||||
|
*/
|
||||||
|
public static long secondsToNext5Minute() {
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
|
||||||
|
// 当前分钟
|
||||||
|
int minute = now.getMinute();
|
||||||
|
|
||||||
|
// 计算下一个 5 分钟整点(向上取整到 5 的倍数)
|
||||||
|
int nextMinute = ((minute / 5) + 1) * 5; // 例如:12 → 15, 17 → 20, 58 → 60
|
||||||
|
|
||||||
|
LocalDateTime nextTime;
|
||||||
|
if (nextMinute < 60) {
|
||||||
|
// 在当前小时内
|
||||||
|
nextTime = now.withMinute(nextMinute).withSecond(0).withNano(0);
|
||||||
|
} else {
|
||||||
|
// 跨小时,例如 10:58 → 11:00
|
||||||
|
nextTime = now.plusHours(1).withMinute(0).withSecond(0).withNano(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算相差的秒数
|
||||||
|
return ChronoUnit.SECONDS.between(now, nextTime);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user