修改采集延迟时间,调整为整分启动
This commit is contained in:
@@ -33,30 +33,31 @@ public class AppInitializer implements CommandLineRunner {
|
|||||||
dynamicTaskService.scheduleTask("heartbeat",
|
dynamicTaskService.scheduleTask("heartbeat",
|
||||||
businessTasks::heartbeatTask, 5000, 30000);
|
businessTasks::heartbeatTask, 5000, 30000);
|
||||||
|
|
||||||
|
long milli = AgentUtil.getMillisToNextMinute() + 60000;
|
||||||
// 每300秒执行CPU信息采集任务
|
// 每300秒执行CPU信息采集任务
|
||||||
AssertLog.info("初始化启动CPU信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 25000, 300000);
|
AssertLog.info("初始化启动CPU信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||||
dynamicTaskService.scheduleTask("cpu",
|
dynamicTaskService.scheduleTask("cpu",
|
||||||
businessTasks::cpuTask, 25000, 300000); // 25秒后开始,每300秒执行
|
businessTasks::cpuTask, milli, 300000); // 25秒后开始,每300秒执行
|
||||||
|
|
||||||
// 每300秒执行磁盘信息采集任务
|
// 每300秒执行磁盘信息采集任务
|
||||||
AssertLog.info("初始化启动磁盘信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 35000, 300000);
|
AssertLog.info("初始化启动磁盘信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||||
dynamicTaskService.scheduleTask("disk",
|
dynamicTaskService.scheduleTask("disk",
|
||||||
businessTasks::diskTask, 35000, 300000); // 35秒后开始,每300秒执行
|
businessTasks::diskTask, milli, 300000); // 35秒后开始,每300秒执行
|
||||||
|
|
||||||
// 每300秒执行系统信息采集任务
|
// 每300秒执行系统信息采集任务
|
||||||
AssertLog.info("初始化启动系统信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 40000, 300000);
|
AssertLog.info("初始化启动系统信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||||
dynamicTaskService.scheduleTask("system",
|
dynamicTaskService.scheduleTask("system",
|
||||||
businessTasks::systemTask, 40000, 300000); // 40秒后开始,每300秒执行
|
businessTasks::systemTask, milli, 300000); // 40秒后开始,每300秒执行
|
||||||
|
|
||||||
// 每300秒执行容器信息采集任务
|
// 每300秒执行容器信息采集任务
|
||||||
AssertLog.info("初始化启动容器信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 45000, 300000);
|
AssertLog.info("初始化启动容器信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||||
dynamicTaskService.scheduleTask("docker",
|
dynamicTaskService.scheduleTask("docker",
|
||||||
businessTasks::dockerTask, 45000, 300000); // 45秒后开始,每300秒执行
|
businessTasks::dockerTask, milli, 300000); // 45秒后开始,每300秒执行
|
||||||
|
|
||||||
// 每300秒执行内存信息采集任务
|
// 每300秒执行内存信息采集任务
|
||||||
AssertLog.info("初始化启动内存信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 55000, 300000);
|
AssertLog.info("初始化启动内存信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||||
dynamicTaskService.scheduleTask("memory",
|
dynamicTaskService.scheduleTask("memory",
|
||||||
businessTasks::memoryTask, 55000, 300000); // 55秒后开始,每300秒执行
|
businessTasks::memoryTask, milli, 300000); // 55秒后开始,每300秒执行
|
||||||
|
|
||||||
|
|
||||||
//获取当前时间距离下一个“分钟为 0 或 5”的时间点还差多少毫秒
|
//获取当前时间距离下一个“分钟为 0 或 5”的时间点还差多少毫秒
|
||||||
@@ -67,9 +68,9 @@ public class AppInitializer implements CommandLineRunner {
|
|||||||
businessTasks::netTask, millis, 300000); // 65秒后开始,每300秒执行
|
businessTasks::netTask, millis, 300000); // 65秒后开始,每300秒执行
|
||||||
|
|
||||||
// 每300秒执行挂载信息采集任务
|
// 每300秒执行挂载信息采集任务
|
||||||
AssertLog.info("初始化启动挂载信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", 75000, 300000);
|
AssertLog.info("初始化启动挂载信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", milli, 300000);
|
||||||
dynamicTaskService.scheduleTask("point",
|
dynamicTaskService.scheduleTask("point",
|
||||||
businessTasks::pointTask, 75000, 300000); // 75秒后开始,每300秒执行
|
businessTasks::pointTask, milli, 300000); // 75秒后开始,每300秒执行
|
||||||
|
|
||||||
// 每300秒执行交换机信息采集任务
|
// 每300秒执行交换机信息采集任务
|
||||||
AssertLog.info("初始化启动交换机信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", millis, 300000);
|
AssertLog.info("初始化启动交换机信息采集定时任务 - 延迟: {}ms, 间隔: {}ms", millis, 300000);
|
||||||
|
|||||||
@@ -131,4 +131,46 @@ public class AgentUtil {
|
|||||||
return ChronoUnit.MILLIS.between(now, nextTime);
|
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