Cron表达式从晚上8点运行到早上6点

问题描述

我正在尝试为spring @Scheduled注释编写cron表达式,应在晚上8点至凌晨6点之间的10分钟间隔内执行-

@Scheduled(cron = "0 */10 20-06 * * MON-FRI",zone = "America/New_York")

但是,以上cron给出了“无效的反向范围”异常。当我尝试

@Scheduled(cron = "0 */10 20-23,0-6 * * MON-FRI",zone = "America/New_York")

然后它不在23和0之间运行。 有什么办法可以写一个cron表达式,它也可以覆盖23到0个小时。

解决方法

下面的使用应从晚上8点开始至早上6点

*/10 20,0-6 * * MON-FRI    (min hour day month week)

上面的表达式转换为-

在第20小时的每10分钟以及从0到6的每小时 从星期一到星期五的每个星期的一天

,

我希望您的第二个例子能奏效。不确定这是否是Spring实施中的错误。好像是这样。

这很漫长,但是您总是可以枚举整个值列表。

... 20,21,22,23,1,2,3,4,5,6 ...