是否可以更改 Quartz 调度程序决定当前时间的方式?
我正在开发一个基于服务的应用程序,包括一个负责按需提供当前时间的时间服务(以便我们可以控制当前时间以进行测试)。
我们的调度服务在底层使用 Quartz。安排在测试时尊重“正确”的当前时间会很好,而不是 System.currentTimeMillis()
或类似的确定的时间。
(我认为 this question 的答案可能暗示我不能这样做,但我希望我是错的...)
我使用的是 Quartz 2.0.0 版。
最佳答案
一种方法是定义您自己的包装(或继承)StdScheduler 的调度程序。在您覆盖的 scheduleJob(...)
方法中,您使用包装器实现包装提供的 Trigger
,例如,您覆盖 getStartTime()
和/或 getNextFireTime()
方法返回包装的触发器返回值加上或减去表示“测试”时间相对于“实时”时间的偏移量的某个间隔。
关于java - Quartz - 改变当前时间的确定方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7192267/