Quartz Cron字符串理解问题

时间:2013-06-07 18:24:02

标签: quartz-scheduler cronexpression

我目前有这个石英cron字符串0 0/35 11-13 1/1 *? *。现在通常意味着每天上午11点到下午1点之间每隔35分钟发生一次。至少从我的理解是这意味着什么。虽然当我查看可能的运行时间时,我会得到这些。

  • 06/08/2013 11:00:00 AM
  • 06/08/2013 11:35:00 AM
  • 06/08/2013 12:00:00 PM
  • 06/08/2013 12:35:00 PM
  • 06/08/2013 1:00:00 PM

这对我没有意义。它似乎在一小时内重置。反正有没有发生这种情况?我希望这项工作能够在上午11点运行,然后是上午11点35分,然后是下午12点10分,而不是下午12点。

非常感谢任何和所有帮助。

1 个答案:

答案 0 :(得分:4)

是的,这是我的同事偶尔遇到的问题。

根据Quartz调度程序的documentation(根据我对Quartz的理解,现在是: - p),cron触发器将设置为"每个每小时第35分钟" 而不是"每天第35分钟"。

根据您的要求,您应该使用简单触发器。

    Date firetime=null; //initialize to Your start time of trigger "11.00am"
            Date endtime=null; // initialize to Your end time of trigger "1.00pm"
    Trigger tr1 = TriggerBuilder
            .newTrigger()
            .startAt(firetime)
                            .endAt(endtime)
            .withIdentity("First Trigger", "First Group")
            .withSchedule(
                    SimpleScheduleBuilder.simpleSchedule()
                            .withIntervalInMinutes(35)
            ).build();

并使用另一个触发器每天安排此触发器。: - )