【发布时间】:2019-03-22 12:24:46
【问题描述】:
In this article 解释了如何排除 Quartz 在特定日历日运行,但我需要的是不同的东西,如果触发日历在假期发生,我需要在前一个或下一个工作日运行该作业。
例如,假设作业计划每月运行一次,包括 2019 年 3 月 29 日星期五,这是一个假期。
这意味着:
- 非节假日:2019 年 3 月 28 日星期四 节前)
- 节假日:2019 年 3 月 29 日星期五
- 节假日:2019 年 3 月 30 日,星期六
- 节假日:2019 年 3 月 31 日星期日
- 非节假日:2019 年 4 月 1 日星期一(如果作业在 节假日之后运行,则应在该时间运行)
实现这一点的一种方法是每天运行作业并分析它是否应该在当天运行,并在必要时重新触发,但有没有更好的方法?
更新
如果我必须每天触发工作,为什么不改用 Java EE 8 TimerService?
【问题讨论】:
-
我建议保留、Quartz 调度器和业务逻辑分开,并根据 Java 中的逻辑触发作业。我无法理解前一天正在运行的工作?
-
意思是你每天都会触发作业,并在Java中有一个业务逻辑来查看它是否在当天运行?
-
job is scheduled to run on Friday, 29 March 2019, but it is a holiday.如果不建议运行,请不要调度。 -
预定每月运行,正逢节假日,所以才预定
标签: java jakarta-ee quartz-scheduler