Quartz Scheduler - 仅在该月的最后一天跳过

时间:2015-02-03 00:26:22

标签: quartz-scheduler

如何自定义Quartz调度程序以仅跳过该月的最后一天?我希望批次在除该月的最后一天之外的所有日子运行。有一个cron表达式在该月的最后一天运行,但我无法指定像这样的范围1-L-1

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

这很可能在触发级别上无法轻易解决。但是,有一个非常优雅的解决方案,允许您从触发器的发射计划中排除特定日期。请检查Quatrz Calendar API。

Calendar接口定义了两种方法:

public interface Calendar 
{
  public boolean isTimeIncluded(long timeStamp);

  public long getNextIncludedTime(long timeStamp);
}

您可能还想查看此Quartz tutorial

更新:似乎Quartz发行版包含一个CronCalendar实现,它提供了您所需的功能。它允许您使用一个cron表达式,该表达式匹配应该从触发中排除的天数。因此,您可以使用' L'来使用cron表达式。语法排除每个月的最后一天。