Files
ai-security-xdr/haobang-security-xdr/syslog-consumer/src/main/java/com/common/schedule/AlarmHealthCheckScheduler.java
T
nanChen a360895292 1、新增功能探针联动处置、心跳在线检测
2、syslog-consumer模块拆分 syslog-consumer-rule模块实现日志数据消费、解析、泛化入库。
2026-05-28 14:30:06 +08:00

57 lines
1.9 KiB
Java

package com.common.schedule;
import com.common.service.AlarmHealthCheckService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* 告警健康检查定时任务
* 每5分钟巡检告警表和告警日志表
*/
@Component
public class AlarmHealthCheckScheduler {
private static final Logger logger = LoggerFactory.getLogger(AlarmHealthCheckScheduler.class);
@Autowired
private AlarmHealthCheckService alarmHealthCheckService;
/**
* 每30分钟执行一次告警健康检查
* 巡检告警表 alarm 和告警日志表 alarm_visit
*/
@Scheduled(cron = "0 */30 * * * ?")
public void scheduledHealthCheck() {
logger.info("========== 开始执行告警健康检查 ==========");
long startTime = System.currentTimeMillis();
try {
boolean hasAlarm = alarmHealthCheckService.performHealthCheck();
long elapsedTime = System.currentTimeMillis() - startTime;
if (hasAlarm) {
logger.warn("告警健康检查完成, 发现异常数据, 耗时: {}ms", elapsedTime);
} else {
logger.info("告警健康检查完成, 所有表数据正常, 耗时: {}ms", elapsedTime);
}
} catch (Exception e) {
logger.error("告警健康检查执行异常: {}", e.getMessage(), e);
}
logger.info("========== 告警健康检查任务结束 ==========");
}
/**
* 手动触发健康检查(供其他服务调用)
* @return 是否有异常
*/
public boolean manualHealthCheck() {
logger.info("手动触发告警健康检查");
return alarmHealthCheckService.performHealthCheck();
}
}