【问题标题】:cron expression every 2 days not making sense for monday每 2 天一次的 cron 表达式对星期一没有意义
【发布时间】:2017-04-27 20:07:24
【问题描述】:

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

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

但是当我给出这个表达式时,第一个触发器设置为星期二 12:00,然后是星期四、星期六等 我在http://cronmaker.com 上验证了这一点 为什么周一会出现这种行为? 如果开始日期设置为任何其他日期,它似乎会按照预期的方式运行。 所以如果它设置在星期二 11:50 am ,第一个触发器是在星期二 12:00。

请帮助我理解。这是一个错误还是预期的行为?有没有办法让它在星期一触发?

谢谢

【问题讨论】:

    标签: cron quartz


    【解决方案1】:

    您的 cron 计划不关心星期几。它只是在每月每个不平衡的日子运行。这是预期的行为。

    如果你需要它在星期一运行,你应该使用类似0 0 12 ? * MON,WED,FRI

    【讨论】:

      【解决方案2】:

      首先,你的表达式只使用? 作为星期几,所以实际上你没有控制那部分。

      Cron 表达式中的第二个/ 字符表示增量。当在 * 旁边使用时,星号仅表示该值的下限,1 表示月份中的某天。

      因此,您确实是在每个月的不平日中午都要求生火。并且触发器的开始时间只会将第一个实例限制为该月的下一个不均匀的日子。

      您无法使用 cron 触发器表达您似乎想要的东西 - 这是一个基于触发器开始时间的时间表。您应该为此使用 s SimpleTrigger

      【讨论】:

        猜你喜欢
        • 2011-02-18
        • 2017-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-11
        • 1970-01-01
        相关资源
        最近更新 更多