在弹簧启动应用程序中计划任务的最佳方法是什么

2022-09-02 05:34:19

我目前正在开发一个基于Spring-Boot的应用程序。

我知道像@Scheduled这样的注释可以安排任务。由于我的应用程序中的用户希望在不同的时间发送邮件并且只发送一次。

我已经阅读了帖子Spring调度任务 - 只运行一次,但是在基于Spring的应用程序中总是“新”本地执行器是很奇怪的。

这样,一旦用户计划发送电子邮件,我就必须“新建”一个本地执行器来完成他的任务。

那么,有没有更好的方法呢?


答案 1

在 Spring 中调度任务的最简单方法是创建由 在 Spring 中注释的 Bean 的方法。在任何类中也需要它。@Scheduled@EnableScheduling@Configuration

春季教程


答案 2

您可以在@Scheduled中使用 crontab

 private AtomicInteger counter = new AtomicInteger(0);

@Scheduled(cron = "*/2 * * * * *")
public void cronJob() {
    int jobId = counter.incrementAndGet();
    System.out.println("Job " + new Date() + ", jobId: " + jobId);
}

推荐