package com.securityControl.task.schedule.task; import com.securityControl.task.service.impl.CatchPictureService; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.Trigger; import org.springframework.scheduling.TriggerContext; 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 org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.util.Date; @Slf4j //@Component //@EnableScheduling public class DownloadPictureTask implements SchedulingConfigurer { @Value("${jobs.cron.downloadPicture}") private String cron; @Autowired private CatchPictureService catchPictureService; @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { // 动态使用cron表达式设置循环间隔 taskRegistrar.addTriggerTask(new Runnable() { @Override public void run() { log.info("=======DownloadPicture Current time: {}", LocalDateTime.now()); log.info("=======DownloadPicture End time: {}", LocalDateTime.now()); } }, new Trigger() { @Override public Date nextExecutionTime(@NotNull TriggerContext triggerContext) { // 使用CronTrigger触发器,可动态修改cron表达式来操作循环规则 CronTrigger cronTrigger = new CronTrigger(cron); return cronTrigger.nextExecutionTime(triggerContext); } }); } }