代码之家  ›  专栏  ›  技术社区  ›  Sadiksha Gautam

JavaQuartz CronExpression验证错误的cron表达式

  •  5
  • Sadiksha Gautam  · 技术社区  · 6 年前

    我用石英调度程序来安排我的工作。我有一个cron表达式是错误的:

    1 15 10 ? * *ssddddfd
    

    当我这样做时:

    String cronExpression = "1 15 10 ? * *ssdddfd";
    boolean checkCronExpression = CronExpression.isValidExpression(cronExpression);
    

    checkCronExpression true . 然而,当我看这个表达式时,它显然是错误的。有没有其他人也面临类似的问题?

    注:

    石英版本为:2.2.3

    http://www.javadoc.io/doc/org.quartz-scheduler/quartz/2.2.3

    我也试过了 validateExpression 方法 CronExpression 上课没有成功。

    1 回复  |  直到 6 年前
        1
  •  9
  •   dpr    6 年前

    这最近被列为一个bug:

    https://github.com/quartz-scheduler/quartz/issues/254

    你说得对,这可能出乎意料。

    然而,一个非常挑剔的人可以说 JavaDoc of isValidCronExpression

    指示是否可以将指定的cron表达式解析为有效的cron表达式

    实际上你提供的表达 可以 被解析为有效的 CronExpression 尽管表达式本身无效。基本上是你打电话得到的保证 CronExpression.isValidCronExpression(expression) 你可以放心的打电话给 new CronExpression(expression) ParseException java.text.ParseException 是一个选中的异常,这是毫无意义的。

    综上所述,目前实施的 cron表达式

    也许你想试试其他的图书馆(在谷歌上搜索):