- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 quartz-scheduler 来安排我的工作。我有一个错误的 cron 表达式:
1 15 10 ? * *ssddddfd
当我这样做时:
String cronExpression = "1 15 10 ? * *ssdddfd";
boolean checkCronExpression = CronExpression.isValidExpression(cronExpression);
checkCronExpression
为 true
。然而,当我看这个表达时,它显然是错误的。有没有其他人也遇到过类似的问题?
注意:包是:package org.quartz;
quartz 版本为:2.2.3
请检查 http://www.javadoc.io/doc/org.quartz-scheduler/quartz/2.2.3 中的 CronExpression 类
我还尝试了 CronExpression
类的 validateExpression
方法,但没有成功。
最佳答案
这最近被记录为一个错误:
https://github.com/quartz-scheduler/quartz/issues/254
你是对的,这可能出乎意料。
然而,非常挑剔的人可能会争辩说 JavaDoc of isValidCronExpression
州
Indicates whether the specified cron expression can be parsed into a valid cron expression
实际上,您提供的表达式可以解析为有效的CronExpression
,尽管表达式本身无效。基本上,您通过调用 CronExpression.isValidCronExpression(expression)
获得的保证是,您可以安全地调用 new CronExpression(expression)
而不必担心 ParseException
将被抛出。然而,由于 java.text.ParseException
是一个已检查的异常,这是毫无意义的。
总而言之,CronExpression
的当前实现似乎有点太宽松了。
也许你想尝试一下其他库(只是在 google 上搜索过):
但是,如果您稍后想将表达式与 quartz 一起使用,您最好的选择是继续使用 quartz 验证,因为对其他库有效的模式可能对 quartz 无效,反之亦然。例如,quartz 的源代码指出,目前不支持同时具有“星期几”和“月份日期”的模式,尽管这通常受到 cron 表达式的支持。
关于Java Quartz CronExpression 验证错误的 cron 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52252273/
在周一至周六的晚上 7 点至上午 9 点以及周日全天执行作业。 我尝试输入多个 cron 表达式,但它不起作用。谁能帮我解决这个问题? 1. " * * 19-8 ? * MON,TUE,WED,TH
是否可以使用以下命令创建 Cron 表达式: “每天每 20 分钟开火一次,但不在周六 10:00 到 14:00 之间开火”? 像“0 0/20 * ? * MON-SAT”这样的东西很清楚,但它不
不知道下面的表述是否正确: 我尝试将我的触发器配置为每个月的第二天触发,无论年份如何,中午,一周中的某一天必须在周一和周五之间。 如果有人可以帮助我,我将不胜感激。提前致谢。 最佳答案 我假设您的意
我已经实现了从属性文件配置 CronExpression,但该属性文件是 apache-deltaspike.properties,它位于 .jar 文件内。我需要从自定义配置文件中获取 cron 表
我有一些 GUI 控件构成了一个典型的 Windows 调度程序(日期\时间选择器、复选框等),我想从中构建一个 CronExpression 字符串。 有谁知道构建表达式字符串的好方法,可以是预先存
我的应用程序基于 GWT。 我正在尝试使用org.quartz-scheduler.quartz-2.2.1.jar来验证cron表达式。 但是当我尝试进行 Maven 构建时,出现以下错误。 [IN
我正在使用 quartz-scheduler 来安排我的工作。我有一个错误的 cron 表达式: 1 15 10 ? * *ssddddfd 当我这样做时: String cronExpression
来自 Quartz 调度器 javadocs对于 CronTrigger 类的方法 setTimeZone: If setCronExpression(CronExpression) is calle
我猜这个标题是不言自明的。我有一份工作: import org.apache.deltaspike.scheduler.api.Scheduled; import org.quartz.Job; @S
将其作为无效的 CronExpression,无法弄清楚原因 推荐http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/
我正在将 UTC±00:00 时间传递给 Quartz 调度程序中的 GetNextValidTimeAfter() 方法,以根据特定的 cron 表达式计算调度的下一个有效时间,但由于我的系统时间是
我是一名优秀的程序员,十分优秀!