【问题标题】:Why Quartz says this cron expression is not valid?为什么 Quartz 说这个 cron 表达式无效?
【发布时间】:2015-01-08 12:00:57
【问题描述】:

Quartz 2.x documentation

所以 cron 表达式可以像这样简单: * * * * ? * 或者更多 复杂,像这样:0/5 14,18,3-39,52 * ? 1 月、3 月、9 月 周一至周五 2002-2010

但如果我尝试

System.out.println(org.quartz.CronExpression.isValidExpression("* * * * ? * *"));

它说

false

为什么?

isValidExpression 的 Javadoc 是 http://quartz-scheduler.org/api/2.2.1/org/quartz/CronExpression.html

附言。这个问题不是Verifying a cron expression is valid in Java的重复@

【问题讨论】:

    标签: java quartz-scheduler


    【解决方案1】:

    链接的JavaDoc 提到了这个用于 cron 表达式的结构:

    Field Name      Allowed Values       Allowed Special Characters
    
    Seconds         0-59                 , - * /
    Minutes         0-59                 , - * /
    Hours           0-23                 , - * /
    Day-of-month    1-31                 , - * ? / L W
    Month           1-12 or JAN-DEC      , - * /
    Day-of-Week     1-7 or SUN-SAT       , - * ? / L #
    Year (Optional) empty, 1970-2199     , - * /
    

    您的 cron 表达式是 "* * * * ? * *"? 在第 5 位是 Month。如您所见,该字符不允许在那里。

    【讨论】:

      【解决方案2】:

      您提到的 JavaDoc 声明 ? 字符仅允许用于 day-of-monthday-of-week 字段。您在 Month 字段中使用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多