Quartz中的Cron表达式每隔50秒运行一次。

9

我正在使用Quartz以cron表达式每50秒运行我的Jobs:

Cron_Expression = "0/50 * * * * ?"

问题是我的任务在秒数为50, 60, 50, 60,...时运行,而不是每50秒运行一次!并且不在第0秒运行。

正确的cron表达式是什么,每50秒从0开始?


你试过用*/50代替0/50吗? - NilsH
一样的吗?还有其他想法吗? - Yosefarr
请查看这里的Cron表达式生成器 - Quartz https://www.freeformatter.com/cron-expression-generator-quartz.html - NoWar
1个回答

9
'/'语法指定的是周期内的增量,而不是重复间隔。这是一个微妙而令人困惑的区别。

在这种情况下,在1分钟的时间段内只有一个可用的增量(50秒)。第一个数字指定要开始的值,在这种情况下为0。在'/'之前指定'*'等效于指定0。因此,作业仅在整分钟(0和60可以互换)和50秒时触发。

如果周期可以被多个增量整除,例如0/10,则它将在每个时间点上触发,例如在10、20、30等秒。

如果您想要一个作业以定期间隔触发,则可以使用Quartz SimpleTrigger并指定repeatInterval


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接