定时任务 TriggerTask triggerContext如何获取nextExecutionTime
在Spring中,可以通过实现org.springframework.scheduling.Trigger接口来创建触发器,并使用它来调度任务。在Trigger接口中,有一个方法叫做nextExecutionTime(TriggerContext triggerContext),该方法返回下一次执行任务的时间。
TriggerContext是一个上下文对象,包含了上一次执行任务的时间、下一次执行任务的时间等信息。在nextExecutionTime方法中,我们可以通过TriggerContext获取这些信息,并根据自己的逻辑来计算下一次执行任务的时间。
例如,我们可以使用CronTrigger来实现一个定时任务,并在任务执行之后打印下一次执行任务的时间:
@Component
public class MyTask {
@Scheduled(cron = "0 0/1 * * * ?")
public void run() {
System.out.println("Task executed at " + new Date());
// 获取下一次执行任务的时间
Trigger trigger = new CronTrigger("0 0/1 * * * ?");
TriggerContext triggerContext = new SimpleTriggerContext();
Date nextExecutionTime = trigger.nextExecutionTime(triggerContext);
System.out.println("Next execution time: " + nextExecutionTime);
}
}
在上面的代码中,我们首先使用@Scheduled注解来定义一个Cron表达式,表示任务每分钟执行一次。然后,在任务执行之后,我们创建了一个CronTrigger,并使用SimpleTriggerContext作为TriggerContext对象。最后,调用nextExecutionTime方法获取下一次执行任务的时间,并打印输出。
原文地址: http://www.cveoy.top/t/topic/bnFQ 著作权归作者所有。请勿转载和采集!