服务器重新启动或崩溃后的计划任务

时间:2019-07-28 12:49:16

标签: java spring-boot scheduled-tasks scheduler cron-task

我对Spring Boot应用程序中的@Scheduled任务有疑问

我有一些微服务,每个月都会发送一封电子邮件。我有@Scheduled(cron =“每月表达”)。但是,仅想象一下我已经将该服务运行了15天(但是我们需要30天发送电子邮件),并且在16天后该服务重新启动或崩溃,并在一段时间后再次唤醒。这项工作会从第一天开始重新计算1个月,还是继续进行16天等等?

@Scheduled(cron="0 0 0 1 * *")
public void sendEmail() {
    emailService.sendEmail();
}

我需要服务器崩溃后的15天,该任务从15天开始继续,并在15天后发送了一封信,但从第一天起就没有再次计数

2 个答案:

答案 0 :(得分:0)

使用此cron:

  
    

0 0 0 1 * *

  

无论服务器何时启动,这都会在每个月的第一天运行调度程序。

答案 1 :(得分:0)

cron表达式旨在在每天或每月或每周的特定日期运行工作,我认为您的理解是错误的。您在特定日期的玉米表达量,但对于时段跟踪则没有,jamesbirtles.svelte-vscode使用该在线生成器获取更多信息

0 0 0 1 * ? *

上面的表达式旨在运行At 00:00:00am, on the 1st day, every month