0

我知道以前有人问过这个问题。但在我看来,这些问题的答案并不正确。

我想要每 2 天安排一次 (Quartz) 的 CronExpression。CronExpression“应该是” 0 0 0 1/2 * ? *

但是:从今天(2017 年 10 月 9 日)开始, CronMaker表明这不是真的。这个表达式的基本意思是:从每月的第一天开始,每 2 天安排一次。这意味着:从 2017 年 10 月 9 日开始,接下来的时间是:

2017 年 10 月 11 日星期三 12:00 AM 2017 年
10 月 13 日星期五 12:00 AM 2017 年
10 月 15 日星期日 12:00 AM 2017 年
10 月 17 日星期二 12:00 AM 2017 年
10 月 19 日星期四 12:00 AM
2017 年 10 月 21 日星期六 12:00 AM 2017 年
10 月 23 日星期一 12:00 AM 2017 年
10 月 25 日星期三 12:00 AM 2017 年
10 月 27 日星期五 12:00 AM 2017 年
10 月 29 日星期日 12:00 AM
2017 年 10 月 31 日星期二 12:00 AM 2017 年
11 月 1 日星期三 12:00 AM

如您所见:最后两次之间只有 1 天。

因此,当我使用freeformatter来描述 cronexpression 时,它指出:

00:00:00 AM,从每月 1 日开始,每 2 天一次

好吧,这在上面列出的时间中显示。但我需要每两天正确触发的东西。

2017 年 10 月 31 日星期二 12:00 AM 2017 年
11 月 2 日星期四 12:00 AM

等等。

显然,石英的简单触发器对我来说不是一个真正的选择!

4

1 回答 1

1

这是因为您误解了 cron 表达式的工作原理。对于每个月,它将从每月的第一天开始。如果它会在其他方面起作用,那么下个月将不适合表达的 1/2 部分。

更详细的解释请看这里:

Quartz.net - 在第 n 天重复,每 m 个月?

于 2017-10-09T22:15:24.833 回答