构建包含当前日期的Quartz Cron表达式

时间:2016-12-14 13:02:20

标签: cron quartz-scheduler crontrigger

是否可能有一个(Quartz)调度程序,其中cron表达式在每5天(包括今天的日期)之后触发。 例如,如果我在2016年12月14日安排工作,间隔为5天,那么应该在12月14日,12月19日,12月24日,12月29日,1月3日,1月3日,1月18日,1月18日触发。 ,1月23日,1月28日,2月2日等等......? 我试过" 17 33 15 14/5 *? *"但没有给出准确的结果。 请帮助!!!

1 个答案:

答案 0 :(得分:0)

CronTrigger不适合这种计划,因为无法使用cron表达式表示这些计划。您要做的是使用专为此目的而定制的CalendarIntervalTrigger

我在Quartz调度程序管理和监视工具(QuartzDesk)中附加了CalendarIntervalTrigger编辑器的屏幕截图。

CalendarIntervalTrigger editor in the QuartzDesk GUI

如您所见,您需要做的就是:

  1. 将触发器的开始日期时间设置为2016年12月14日。
  2. 将重复间隔单位设为'日'。
  3. 将重复间隔设置为5(即5天)。
  4. 在编辑器窗口旁边,有一个视图,显示您为触发器计算的下次触发时间。列表中缺少12月14日和12月19日,因为今天是12月20日,该视图仅显示未来的触发开火时间。

    以编程方式创建CalendarIntervalTrigger的实际Java代码类似于用于创建CronTrigger的代码,因此我不在此处包含它。重点是你必须使用不同的触发器类型,并设置如上所述的两个属性。