package com.casic.config.task; import com.casic.service.DeviceDataScanner; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.config.ScheduledTaskRegistrar; import org.springframework.scheduling.support.CronTrigger; import java.util.List; import java.util.concurrent.Executors; @Slf4j @Configuration @EnableScheduling public class TaskSchedulingConfig implements SchedulingConfigurer { @Autowired private List<DeviceDataScanner> deviceDataScannerList; @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { log.info("扫描定时处理start..."); taskRegistrar.setScheduler(Executors.newScheduledThreadPool(10)); //执行定时任务 taskRegistrar.addTriggerTask( //设置日期任务 getMangerRunnable(""), //2.设置执行周期(Trigger) triggerContext -> new CronTrigger("0 */1 * * * ?").nextExecutionTime(triggerContext) ); } /** * 进行某类设备的查询,进行阈值最后一条数据进行判断,进行报警设置值 */ private Runnable getMangerRunnable(String DeviceType) { return new Runnable() { @Override public void run() { deviceDataScannerList.forEach( deviceDataScanner -> deviceDataScanner.scanDeviceData() ); } }; } }