我的工作计划每小时运行一次,我使用的是spring cron(0 0/35 * * *)。我期待这项工作每小时在第35分钟运行,但我注意到这项工作在第35分钟和最高时刻被触发。我不知道为什么,有什么建议吗?
谢谢, Karthik
答案 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 * * * *
希望这有帮助!