在 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 方法获取下一次执行任务的时间,并打印输出。

Spring 定时任务 TriggerTask:获取下一次执行时间 nextExecutionTime

原文地址: https://www.cveoy.top/t/topic/mQhI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录