Кварц - изменить, как определяется текущее время? - PullRequest
0 голосов
/ 25 августа 2011

Можно ли изменить способ определения планировщиком кварца текущего времени?

Я занимаюсь разработкой приложения на основе служб, включая службу времени, которая отвечает за предоставление текущего времени по запросу (поэтомучто мы можем контролировать текущее время для целей тестирования).

Наша служба планирования использует Quartz под капотом.Было бы неплохо, чтобы при планировании учитывалось «правильное» текущее время при тестировании, а не время, определяемое System.currentTimeMillis() или аналогичным.

(я думаю, что ответ на этот вопрос может предположить, что я не могу этого сделать, но я надеюсь, что я не прав ...)

Я использую Кварц версии 2.0.0.

Ответы [ 2 ]

4 голосов
/ 25 августа 2011

Один из способов - определить свой собственный планировщик, который оборачивает (или наследует) StdScheduler. В переопределенном методе scheduleJob(...) вы оборачиваете предоставленный Trigger реализацией-оберткой, где, например, вы переопределяете методы getStartTime() и / или getNextFireTime(), чтобы вернуть возвращаемое значение упакованных триггеров плюс или минус некоторый интервал это представляет смещение вашего «тестового» времени относительно «реального» времени.

1 голос
/ 25 августа 2011

Ответ на ваш вопрос в НЕТ, вы не можете этого сделать.

Раньше на Quartz пытались объяснить такую ​​необходимость, но должно было быть так много компонентов с таким большим количеством различных жизненных циклов (инстанциаторы и т. Д.).) что нужно определить текущее время, когда необходимая для этого сантехника стала очень громоздкой и от нее отказались.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...