package com.casic.schedule; import com.casic.service.DeviceDataService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; 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.config.TriggerTask; import org.springframework.scheduling.support.CronTrigger; /** * @author cz */ @Configuration @EnableScheduling @Slf4j @RequiredArgsConstructor public class TaskConfigurer implements SchedulingConfigurer { @Value("${casic.device.online.cron}") private String onlineStateCron; private final DeviceDataService deviceDataService; @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(), triggerContext -> { return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext); }); taskRegistrar.addTriggerTask(onlineStateTask); } private Runnable nextDayDevice() { return new Runnable() { @Override public void run() { log.info("定时查询在线离线运行了..."); deviceDataService.checkAndUpdateDeviceOnline(); } }; } }