第35分钟,每小时跑步一次

时间:2017-03-31 21:36:57

标签: java spring cron spring-scheduled

我的工作计划每小时运行一次,我使用的是spring cron(0 0/35 * * *)。我期待这项工作每小时在第35分钟运行,但我注意到这项工作在第35分钟和最高时刻被触发。我不知道为什么,有什么建议吗?

谢谢, Karthik

4 个答案:

答案 0 :(得分:3)

根据Spring CronSequenceGenerator docs/35中的0 0/35 * * *有效地表示“每分钟35的倍数”,其中包括0 - 如果您只想在35分钟触发它每小时后,只需使用0 35 * * * *(包括它想要的所有6个参数)。

答案 1 :(得分:0)

您的cron表达式不正确,因此将其更改为仅{35}每分钟运行一次的0 */35 * * *

答案 2 :(得分:0)

我认为您的字段无序。 Spring Cron文档似乎说Spring使用标准的cron表达式。 https://crontab.guru是检查cron表达式的好工具。

https://crontab.guru/#0_0/35_ _ _ *显示

  

“从0到23,每隔35小时过去0分钟。”

https://crontab.guru/#35_ _ _ _ 显示

  

“第35分钟。”

我认为您需要使用35 * * * *

答案 3 :(得分:0)

是。 Cron在每小时开始时开始分钟(正如我们提到的*小时字段)。实现目标的另一种方法(每35分钟执行一次任务)可以如下 -

  

每5分钟制作一次你的cron触发器并增加一个计数器   每次触发cron时。一旦计数器达到7(即35   在你的情况下分钟),执行你的目标并将计数器设置回0。

如果你希望你的目标在每小时的第35分钟执行,你应该尝试

35 * * * *

希望这有帮助!