package com.weather.modules.sys.alert.task;

import com.weather.modules.job.task.ITask;
import com.weather.modules.sys.alert.AlertSourceCollector;
import com.weather.modules.sys.service.SysAlertService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 通知数据源定时轮询任务。
 * 通过 Quartz schedule_job 表注册：
 * beanName = alertSourcePollingTask，建议 cron = 每 10 分钟。
 *
 * <p>默认暂停（status=0），待数据源实现就绪后启用。
 */
@Slf4j
@Component("alertSourcePollingTask")
@AllArgsConstructor
public class AlertSourcePollingTask implements ITask {

    private final AlertSourceCollector collector;
    private final SysAlertService sysAlertService;

    @Override
    public void run(String params) {
        log.info("开始轮询通知数据源");
        int count = collector.collectAll(sysAlertService);
        log.info("通知数据源轮询完成，新增 {} 条", count);
    }
}
