Cron表达式每天运行,但不是在窗口上运行



是否有可能为java中的石英调度器创建一个表达式,该表达式每15分钟运行一次作业,但应该跳过从周六晚上9点到周日早上6点的作业运行?因此,就像作业将每周7天每15分钟运行一次,但不应该从周六晚上9点运行到周日早上6点(因为当时有一些维护活动)。

您可以使用石英日历排除某些日期和/或时间段。为了支持您的用例,您有两个选择:

  1. 通过实现org.quartz.Calendar或扩展org.quartz.BaseCalendar实现自定义日历。在内部,您的自定义日历可以使用下面描述的两个CronCalendar实现。

  2. 使用两个"chained"CronCalendars。通过链接,我的意思是使用一个日历作为另一个日历的基本日历。第一个日历将不包括周六晚上9点到午夜,第二个日历将不包括周日早上00点到早上6点。以下是这两个日历使用的cron表达式:

    • 研讨会吗?*坐
    • 00-05吗?*太阳

下面是一些示例,展示如何在代码中使用日历:

http://www.quartz - scheduler.org/documentation/quartz 2.3.0/tutorials/tutorial教训- 04. - html

https://www.javarticles.com/2016/06/quartz-calendar-example.html

最新更新