java - Quartz - 改变当前时间的确定方式?

标签 java quartz-scheduler

是否可以更改 Quartz 调度程序决定当前时间的方式?

我正在开发一个基于服务的应用程序,包括一个负责按需提供当前时间的时间服务(以便我们可以控制当前时间以进行测试)。

我们的调度服务在底层使用 Quartz。安排在测试时尊重“正确”的当前时间会很好,而不是 System.currentTimeMillis() 或类似的确定的时间。

(我认为 this question 的答案可能暗示我不能这样做,但我希望我是错的...)

我使用的是 Quartz 2.0.0 版。

最佳答案

一种方法是定义您自己的包装(或继承)StdScheduler 的调度程序。在您覆盖的 scheduleJob(...) 方法中,您使用包装器实现包装提供的 Trigger,例如,您覆盖 getStartTime() 和/或 getNextFireTime() 方法返回包装的触发器返回值加上或减去表示“测试”时间相对于“实时”时间的偏移量的某个间隔。

关于java - Quartz - 改变当前时间的确定方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7192267/

相关文章:

grails - 如何在Grails中从 Controller 设置cron作业的cron表达式

java - 之间有区别吗?和 * 在 cron 表达式中?奇怪的例子

java - quartz : triggering multiple jobs

java - Jackson 如何创建 JsonObject

java - 从 hashmap 中检索值并返回

java - 如何从触摸屏获取输入并保存为位图格式?

c# - 如何让 Job 在 Quartz.Net 中引发 EventHandler?

grails - Grails从 quartz 作业中调用taglib

java - 如何从json中读取信息

Eclipse 中的 Java 项目版本