【发布时间】:2015-04-02 01:59:46
【问题描述】:
如何自定义 Quartz 调度程序以仅跳过该月的最后一天?我希望该批次在该月的最后一天以外的所有日子运行。有一个 cron 表达式要在该月的最后一天运行,但我无法指定这样的范围 1-L-1
任何帮助将不胜感激。
【问题讨论】:
标签: quartz-scheduler
如何自定义 Quartz 调度程序以仅跳过该月的最后一天?我希望该批次在该月的最后一天以外的所有日子运行。有一个 cron 表达式要在该月的最后一天运行,但我无法指定这样的范围 1-L-1
任何帮助将不胜感激。
【问题讨论】:
标签: quartz-scheduler
这很可能无法在触发级别上轻松解决。但是,有一种非常优雅的解决方案可以让您从触发器的触发时间表中排除特定日期。请检查 Quatrz 日历 API。
Calendar 接口定义了两个方法:
public interface Calendar
{
public boolean isTimeIncluded(long timeStamp);
public long getNextIncludedTime(long timeStamp);
}
您可能还想查看此Quartz tutorial。
更新:Quartz 发行版似乎包含一个CronCalendar 实现,它提供了您所追求的功能。它允许您使用与应从触发中排除的日期匹配的 cron 表达式。因此,您可以使用使用 'L' 语法的 cron 表达式来排除每个月的最后一天。
【讨论】: