作为输入验证的一部分,我在考虑这是否是一个真正有效的 cron 表达式以及它将如何执行:
0 0/0 * * * ?
Quartz 验证返回 true
org.quartz.CronExpression.isValidExpression("0 0/0 * * * ?")
那么,它是否一直在运行,从不,每小时或每分钟......?
最佳答案
您可以使用 TriggerUtils.computeFireTimesBetween() 找到结果:
try {
CronTriggerImpl cron = new CronTriggerImpl();
cron.setStartTime(new Date());
cron.setCronExpression("0 0/0 * * * ?");
BaseCalendar calendar = new BaseCalendar();
List<Date> result = TriggerUtils.computeFireTimesBetween(cron, calendar, new Date(),DateBuilder.futureDate(1, IntervalUnit.DAY));
for (Date date : result) {
System.out.println(date);
}
} catch (ParseException e) {
e.printStackTrace();
}
输出是:
Thu Apr 05 18:00:00 CST 2012
Thu Apr 05 19:00:00 CST 2012
Thu Apr 05 20:00:00 CST 2012
Thu Apr 05 21:00:00 CST 2012
Thu Apr 05 22:00:00 CST 2012
Thu Apr 05 23:00:00 CST 2012
Fri Apr 06 00:00:00 CST 2012
Fri Apr 06 01:00:00 CST 2012
Fri Apr 06 02:00:00 CST 2012
Fri Apr 06 03:00:00 CST 2012
Fri Apr 06 04:00:00 CST 2012
.......................
因此,0 0/0 * * * ?
将在每小时 0 分 0 秒运行。
关于java - 0/0 的 Quartz cron 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10024576/