spring cron 运行 每小时第 35 分钟

spring cron for running every hour at 35th minute

我有一份计划每小时 运行 的工作,我正在使用 spring cron (0 0/35 * * *)。我希望这项工作在每小时第 35 分钟 运行 但我注意到该工作在第 35 分钟和整点时触发。我不确定为什么,有什么建议吗?

谢谢, 卡尔提克

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

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

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

“At minute 0 past every 35th hour from 0 through 23.”

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

“At minute 35.”

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

根据 Spring CronSequenceGenerator docs0 0/35 * * * 中的 /35 实际上意味着 "every minute that's a multiple of 35",其中包括 0 - 如果您只希望它在每次触发后 35 分钟触发小时,只需使用 0 35 * * * *(包括它想要的所有 6 个参数)。

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

Make your cron trigger for every 5 minutes and increment a counter everytime the cron is triggered. Once the counter reaches 7 (i.e. 35 mins in your case), execute your goal and set the counter back to 0.

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

35 * * * *

希望对您有所帮助!