Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > quartz rescheduling job in clustering environment


Автор: DKroshkin 23.4.2010, 18:00
Доброго времени суток.

Имею много приложений, крутящихся на различных JVM, но использующие одну конфигурацию для кварца.
Есть одно приложение, которое только конфигурирует время запуска заданий.

Проблема с перепланированием существующих заданий.
Если задание стоит первым на исполнение, то при попытке его сдвинуть в будущее, оно исполнится 2 раза: в старое время и в новое.
Кто-нибудь сталкивался с подобной проблемой, и как лечили?

P.S.
Одно из мест, которое у меня вызывает подозрения это QuartzSchedulerThread и механизм перепланирования задания, только в случае если задание попадает в начало очереди.

Автор: Старовъръ 23.4.2010, 20:13
А как ты вообще осуществляешь перепланироварие? А то я как-то пытался найти, не нашел smile

Автор: DKroshkin 23.4.2010, 20:48
Вызываю метод Scheduler.rescheduleJob

сам сижу разбираюсь, что народ наколбасил.  smile 

Автор: COVD 23.4.2010, 23:03
Из здравого смысла надежней удалить и создать новый.

Автор: DKroshkin 29.4.2010, 12:34
Все дело в потоке JobStoreSupport.MisfireHandler, который отвечает за запуск пропущенных тасков.
А таск может стать пропущенным при решедулинге, если не обновить соответствующим образом startTime.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)