【发布时间】:2021-10-02 16:24:02
【问题描述】:
是否可以在 java 中为石英调度程序创建一个表达式,它每 15 分钟运行一次作业,但应该跳过从周六晚上 9 点到周日早上 6 点运行的作业?因此,该作业将每周 7 天每 15 分钟运行一次,但不应从周六晚上 9 点到周日早上 6 点运行(当时进行一些维护活动)。
【问题讨论】:
标签: cron quartz-scheduler
是否可以在 java 中为石英调度程序创建一个表达式,它每 15 分钟运行一次作业,但应该跳过从周六晚上 9 点到周日早上 6 点运行的作业?因此,该作业将每周 7 天每 15 分钟运行一次,但不应从周六晚上 9 点到周日早上 6 点运行(当时进行一些维护活动)。
【问题讨论】:
标签: cron quartz-scheduler
您可以使用石英日历排除某些日期和/或时间段。为了支持您的用例,您有两种选择:
通过实现org.quartz.Calendar 或扩展org.quartz.BaseCalendar 来实现自定义日历。在内部,您的自定义日历可以使用下面描述的两个 CronCalendar 实现。
使用两个“链式”CronCalendars。通过链接,我的意思是使用一个日历作为另一个日历的基准日历。第一个日历将排除周六晚上 9 点至午夜,第二个日历将排除周日上午 00 点至早上 6 点。这些是这两个日历使用的 cron 表达式:
这里有几个例子展示了如何在你的代码中使用日历:
http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/tutorial-lesson-04.html
https://www.javarticles.com/2016/06/quartz-calendar-example.html
【讨论】: