【问题标题】:Quartz Scheduler - Skipping only last day of the monthQuartz Scheduler - 仅跳过本月的最后一天
【发布时间】:2015-04-02 01:59:46
【问题描述】:

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

任何帮助将不胜感激。

【问题讨论】:

    标签: quartz-scheduler


    【解决方案1】:

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

    Calendar 接口定义了两个方法:

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

    您可能还想查看此Quartz tutorial

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

    【讨论】:

    • 完美。 CronCalendar 完全符合我的目的,并且按预期工作。感谢您的回复!
    • 很高兴它对您有用。请考虑投票支持我的答案。非常感谢。
    猜你喜欢
    • 2022-11-09
    • 2013-05-23
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2021-10-30
    • 2017-09-04
    • 1970-01-01
    • 2014-05-02
    相关资源
    最近更新 更多