每隔2天cron表达对于星期一没有意义

时间:2017-04-27 20:07:24

标签: cron quartz

我有一个cron表达 - 0 0 12 * / 2 *?

如果开始日期是星期一,时间是上午11点40分,我预计的下一个触发日期是星期一12:00,然后是星期三,星期五等等。

但是当我给出这个表达式时,第一个触发器设置为星期二12:00,然后是星期四,星期六等等 我在http://cronmaker.com验证了这一点 为什么这种行为发生在星期一? 如果开始日期设置为任何其他日期,它似乎表现出它应该的方式。 因此,如果它是在星期二上午11点50分设置的,那么第一个触发器是在星期二12:00。

请帮我理解。这是一个错误或预期的行为?是否有工作可以在星期一触发它?

由于

2 个答案:

答案 0 :(得分:0)

您的cron时间表并不关心一周中的哪一天。它只是在每个月的不平衡日运行。这是预期的行为。

如果您需要在星期一运行,则应使用0 0 12 ? * MON,WED,FRI

之类的内容

答案 1 :(得分:0)

首先,你的表达式只使用ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Http; 表示星期几,所以实际上你没有控制那个部分。

其次,Cron表达式中的?字符表示增量。当在/旁边使用时,星号仅表示该值的下限,*表示当月的日期。

所以你确实要求在每个月的不平衡日中午开火。触发器的开始时间只会将第一个实例限制为该月的下一个不均匀日期。

你无法用cron触发器表达你想要的东西 - 这是一个基于触发器开始时间的时间表。你应该使用s SimpleTrigger来实现这个