2017-08-21 75 views
3

我是新来的春天。我试图每小时运行一次cron作业,并且我正在使用Spring Cron作业何时将首次执行?

@Scheduled(cron="0 0/60 * * * ?") 

表达式为此。那么这项工作何时开始?可以说,如果我在10:03 AM部署了应用程序。 cron Job是否会在下一个小时开始,即上午11:00,或者从上午10:03开始,然后从下一个连续的小时开始,如11:00,12:00等。

其实我昨天部署了我的应用程序,我没有看到cron作业正在运行。我想弄明白为什么它没有运行。同时我只想澄清一下自己。

我一直奉行的文件,但我相信他们并没有在文档中提到这一点:https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html

+0

我认为应该从应用程序启动60分钟,但我不确定是否有保证。如果您希望它在每个小时的顶部,请更改模式。您可以让应用告诉您下一次触发的时间,例如,在启动时,如果模式通过配置可用;请参阅https://stackoverflow.com/a/33504624/3001761。如果它根本没有触发,你是否在应用配置类上有'@ EnableScheduling'? – jonrsharpe

+0

它假定你知道[cron配置](https://linux.die.net/man/5/crontab)。 – OrangeDog

回答

2

它会在每个小时,分钟0(同60)执行,第二个0(HH: 00:00)。所以"cron="0 0 * * * ?",也会这样做。

的值之间/限定的范围内,所以将"cron="0 30/45 * * * ?"如果没有计划作业是在所有执行,直到分钟通气45.

当分钟是30,然后15次执行,它似乎调度不是在开始所有。您是否在配置中设置了@EnableScheduling注释?

要测试可用性,请将其设置为cron = "* * * * * ?"(每秒)。

+0

感谢@Stefan的解释。是的,有一些配置问题的cron任务,我修好了,看起来一切都很好,现在:) – user3750720