2

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

  • 2013 年 6 月 8 日上午 11:00:00
  • 2013 年 6 月 8 日上午 11:35:00
  • 2013 年 6 月 8 日下午 12:00:00
  • 2013 年 6 月 8 日下午 12:35:00
  • 2013 年 6 月 8 日下午 1:00:00

这对我来说没有意义。它似乎在整点重置。无论如何,这不会发生吗?我希望工作在上午 11 点运行,然后是上午 11:35,然后是下午 12:10,而不是下午 12 点。

任何和所有的帮助将不胜感激。

4

1 回答 1

4

是的,这是我的同事们时常遇到的问题。

根据 Quartz 调度程序的文档(是的,根据我对 Quartz 的理解,到目前为止 :-p ),cron 触发器将被设置为“每小时每 35 分钟”而不是“每 35 分钟”一天”。

根据您的要求,您应该使用 simple-trigger 。

    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();

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

于 2013-06-08T08:16:51.133 回答