Spring @scheduled cron 表达式过夜

Spring @scheduled cron expression over night

只是想知道如果您希望它在晚上 21 点到早上 6 点之间每三分钟 运行 这是一个正确的 @Scheduled cron 表达式:

@Scheduled(cron = "0 */3 21-6 * * ?")

会运行过夜吗?

我觉得应该是21-23,0-6

我猜应该是@Scheduled(cron="0 */3 21-23,0-6 * * ?")。请查看 this video 以了解使用 cron 表达式的不同可能方式。

如果您希望 cron 在 6:00 停止,您必须在您的范围内写入 5 而不是 6,否则将包括整个小时,因此:

@Scheduled(cron="0 */3 21-23,0-5 * * *")

我发现 this website 非常有助于您编写对 Spring 格式有效的 cron 表达式。

它给出了这样的解释:每 3 分钟,在 09:00 下午到 11:59 下午和 12:00 上午到 05:59 上午