Quartz cron表达式为0/0

Pet*_*rta 2 java quartz-scheduler cronexpression

作为输入验证的一部分,我在考虑这是否是一个真正有效的cron表达式以及它将如何执行:

0 0/0 * * * ?
Run Code Online (Sandbox Code Playgroud)

Quartz验证返回true

org.quartz.CronExpression.isValidExpression("0 0/0 * * * ?")
Run Code Online (Sandbox Code Playgroud)

那么,这一直在运行,从不,每小时或每一分钟......?

Ken*_*han 7

您可以使用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();
    }
Run Code Online (Sandbox Code Playgroud)

输出是:

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
.......................
Run Code Online (Sandbox Code Playgroud)

因此,0 0/0 * * * ?将在0分钟和0秒每小时运行一次.