【问题标题】:Quartz Cron String Understanding IssueQuartz Cron 字符串理解问题
【发布时间】:2013-06-09 21:11:04
【问题描述】:

我目前有这个石英 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 点。

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

【问题讨论】:

    标签: quartz-scheduler cronexpression


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,我实际上在此之后并在quartz.net github上发布了一个问题,并得到了Marko Lamha的回答,这与您所说的完全一样。我真的希望它没有像这样工作。哦,谢谢你的帮助。
    猜你喜欢
    • 2019-02-17
    • 2015-11-30
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 2013-06-11
    • 2011-01-24
    相关资源
    最近更新 更多