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

Quartz Scheduler - Skipping only last day of the month

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

如有任何帮助,我们将不胜感激。

这很可能无法在触发级别轻松解决。但是,有一种非常优雅的解决方案可以让您从触发器的触发计划中排除特定日期。请查看 Quatrz 日历 API.

Calendar 接口定义了两个方法:

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

  public long getNextIncludedTime(long timeStamp);
}

您可能还想查看此 Quartz tutorial

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