首页 > 解决方案 > 如何在前一个或下一个工作日运行 Quartz 调度程序

问题描述

在本文中,解释了如何排除 Quartz 在特定日历日运行,但我需要的是不同的,如果触发日历在假期发生,我需要在前一个或下一个工作日运行作业。

例如,假设作业计划每月运行,包括 2019 年 3 月 29 日星期五,这是一个假期。

这意味着:

实现这一点的一种方法是每天运行作业并分析它是否应该在当天运行,并在必要时重新触发,但有更好的方法吗?

更新

如果我必须每天触发工作,为什么不使用 Java EE 8 TimerService呢?

标签: javajakarta-eequartz-scheduler

解决方案


例如,我建议使用 Cron Expression 在每个工作日运行它(每个工作日下午 5 点运行)

0 00 17 * * MON-FRI

在由 Cron 表达式调用的函数中,您可以调用 holidayService.isHoliday(date) 来判断日期是否为假日。如果是假期,那么您可以跳过运行报告。


推荐阅读