Spring Boot计划任务运行整个小时而不是一小时

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot计划任务运行整个小时而不是一小时相关的知识,希望对你有一定的参考价值。

Spring Boot在这里。我有以下计划任务:

@Component
public class AdminWatchdog {
    @Autowired
    private EmailService emailService;

    // Ctors, getters & setters here

    @Scheduled(cron = "'* * */12 * * *")
    public void runReports() {
        // Doesn't matter what it does, really
    }
}

当我运行它时,它似乎在每天的第12小时的整个持续时间内每分钟或每秒(无法根据日志判断)发射!

我只希望这个任务每天中午(下午12点)运行一次。 Spring cron配置不正确还是我的应用程序中还有其他东西?

答案

你的cron是不正确的。为了每天中午每天都在工作,请使用此功能

"0 0 12 * * ?"

如果你理解每个字符代表什么,表达是非常自我解释的

     0          0        12       *            *           ? 
  <second> <minute> <hour> <day-of-month> <month> <day-of-week>

供你参考。您可以使用像http://www.cronmaker.com/这样的工具来设计您的cron

以上是关于Spring Boot计划任务运行整个小时而不是一小时的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot实战笔记-- Spring高级话题(计划任务)

Heroku调度程序不是每小时运行一次

Spring Boot教程11——计划任务

Windows 任务计划程序安装程序

spring boot: @EnableScheduling开启计划任务支持,@Scheduled计划任务声明

无法运行 Spring Boot 应用程序?