修改采集延迟时间,调整为整分启动
This commit is contained in:
@@ -33,30 +33,31 @@ public class AppInitializer implements CommandLineRunner {
|
||||
dynamicTaskService.scheduleTask("heartbeat",
|
||||
businessTasks::heartbeatTask, 5000, 30000);
|
||||
|
||||
long milli = AgentUtil.getMillisToNextMinute() + 60000;
|
||||
// 每300秒执行CPU信息采集任务
|
||||
AssertLog.info("初始化启动CPU信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 25000, 300000);
|
||||
AssertLog.info("初始化启动CPU信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||
dynamicTaskService.scheduleTask("cpu",
|
||||
businessTasks::cpuTask, 25000, 300000); // 25秒后开始,每300秒执行
|
||||
businessTasks::cpuTask, milli, 300000); // 25秒后开始,每300秒执行
|
||||
|
||||
// 每300秒执行磁盘信息采集任务
|
||||
AssertLog.info("初始化启动磁盘信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 35000, 300000);
|
||||
AssertLog.info("初始化启动磁盘信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||
dynamicTaskService.scheduleTask("disk",
|
||||
businessTasks::diskTask, 35000, 300000); // 35秒后开始,每300秒执行
|
||||
businessTasks::diskTask, milli, 300000); // 35秒后开始,每300秒执行
|
||||
|
||||
// 每300秒执行系统信息采集任务
|
||||
AssertLog.info("初始化启动系统信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 40000, 300000);
|
||||
AssertLog.info("初始化启动系统信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||
dynamicTaskService.scheduleTask("system",
|
||||
businessTasks::systemTask, 40000, 300000); // 40秒后开始,每300秒执行
|
||||
businessTasks::systemTask, milli, 300000); // 40秒后开始,每300秒执行
|
||||
|
||||
// 每300秒执行容器信息采集任务
|
||||
AssertLog.info("初始化启动容器信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 45000, 300000);
|
||||
AssertLog.info("初始化启动容器信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||
dynamicTaskService.scheduleTask("docker",
|
||||
businessTasks::dockerTask, 45000, 300000); // 45秒后开始,每300秒执行
|
||||
businessTasks::dockerTask, milli, 300000); // 45秒后开始,每300秒执行
|
||||
|
||||
// 每300秒执行内存信息采集任务
|
||||
AssertLog.info("初始化启动内存信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 55000, 300000);
|
||||
AssertLog.info("初始化启动内存信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||
dynamicTaskService.scheduleTask("memory",
|
||||
businessTasks::memoryTask, 55000, 300000); // 55秒后开始,每300秒执行
|
||||
businessTasks::memoryTask, milli, 300000); // 55秒后开始,每300秒执行
|
||||
|
||||
|
||||
//获取当前时间距离下一个“分钟为 0 或 5”的时间点还差多少毫秒
|
||||
@@ -67,9 +68,9 @@ public class AppInitializer implements CommandLineRunner {
|
||||
businessTasks::netTask, millis, 300000); // 65秒后开始,每300秒执行
|
||||
|
||||
// 每300秒执行挂载信息采集任务
|
||||
AssertLog.info("初始化启动挂载信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 75000, 300000);
|
||||
AssertLog.info("初始化启动挂载信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||
dynamicTaskService.scheduleTask("point",
|
||||
businessTasks::pointTask, 75000, 300000); // 75秒后开始,每300秒执行
|
||||
businessTasks::pointTask, milli, 300000); // 75秒后开始,每300秒执行
|
||||
|
||||
// 每300秒执行交换机信息采集任务
|
||||
AssertLog.info("初始化启动交换机信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", millis, 300000);
|
||||
|
||||
@@ -131,4 +131,46 @@ public class AgentUtil {
|
||||
return ChronoUnit.MILLIS.between(now, nextTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取距离下一个分钟整点的毫秒数
|
||||
*/
|
||||
public static long getMillisToNextMinute() {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
|
||||
// 获取下一个分钟整点时间
|
||||
LocalDateTime nextMinute = now
|
||||
.truncatedTo(ChronoUnit.MINUTES) // 截断到当前分钟
|
||||
.plusMinutes(1); // 加1分钟
|
||||
|
||||
// 计算时间差(毫秒)
|
||||
return ChronoUnit.MILLIS.between(now, nextMinute);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取距离下一个指定分钟整点的毫秒数
|
||||
*/
|
||||
public static long getMillisToNextMinuteInterval(int intervalMinutes) {
|
||||
if (intervalMinutes <= 0) {
|
||||
throw new IllegalArgumentException("Interval must be positive");
|
||||
}
|
||||
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
|
||||
// 计算当前分钟在间隔中的位置
|
||||
int currentMinute = now.getMinute();
|
||||
int remainder = currentMinute % intervalMinutes;
|
||||
|
||||
// 计算需要增加的分钟数
|
||||
int minutesToAdd = remainder == 0 ? intervalMinutes : intervalMinutes - remainder;
|
||||
|
||||
// 获取下一个间隔整点时间
|
||||
LocalDateTime nextInterval = now
|
||||
.truncatedTo(ChronoUnit.MINUTES) // 截断到当前分钟
|
||||
.plusMinutes(minutesToAdd) // 增加到下一个整点
|
||||
.withSecond(0) // 秒设为0
|
||||
.withNano(0); // 纳秒设为0
|
||||
|
||||
return ChronoUnit.MILLIS.between(now, nextInterval);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user