2010-09-06 14 views
14

Używam Quartz Scheduler v.1.8.0.Jaka jest różnica między trybem gotowości programu planującego() a pauseAll()?

Jaka jest różnica między scheduler.standby() a scheduler.pauseAll()?

czuwania() - Tymczasowo zatrzymuje wypalania scheduler za wyzwalaczy.

pauseAll() - Pauza wszystkie wyzwalacze - podobnie jak wywołanie pauseTriggerGroup (grupy) na każdym grupy, jednak po użyciu tego metody resumeAll() musi być wywołana do stanu wyczyścić scheduler dnia ' pamiętając, że "wszystkie nowe wyzwalacze zostaną wstrzymane po dodaniu.

Na podstawie tego, co zrozumiałem z dokumentacji API, nie jestem w stanie łatwo/wyraźnie odróżnić/odróżnić od każdego z nich. Widzę, że oba służą temu samemu celowi - tymczasowo wstrzymują/zatrzymują wszystkie wyzwalacze w harmonogramie, a następnie następuje start() (dla trybu gotowości) lub resumeAll() (dla pauseAll) w celu wyczyszczenia stan programu planującego. Czy jest jakaś inna różnica?

Eksperci Hope mogą mi pomóc w zrozumieniu wszelkich subtelnych różnic.

Odpowiedz

16

Różnica polega na stosowaniu instrukcji dotyczących przerw zapłonu.

Po wywołaniu funkcji Start() po przejściu w tryb gotowości() wszelkie niewypały, które pojawiają się w trybie gotowości, zostaną zignorowane.

Po wywołaniu funkcji resumeAll() po pauseAll() zostaną zastosowane wszystkie niewypały, które pojawią się podczas wstrzymywania programu planującego.

+1

To jest nieprawidłowe. jeśli wywołasz funkcję standby(), a następnie start(), wyzwalacz nie uruchomi się, zostanie zignorowany tylko podczas wykonywania funkcji start() i nie będzie działał przez cały czas między wywołaniem a trybem gotowości() i start(). – pkrish

6

Istnieje różnica, gdy program planujący jest wznawiany po standby i pauseAll.

Wprowadziłem różnicę pogrubioną w następującym opisie z dokumentacji API.

gotowości:

void czuwania() rzuca SchedulerException Tymczasowo zatrzymuje program planujący w wypalania wyzwalaczy.

Kiedy start() jest wywoływana (przynieść planującego z trybu stand-by), wyzwalające instrukcje zaplonu NIE być stosowane podczas wykonywania metody start() - wszelkie niewypały będzie wykryte natychmiast po tym (przez normalny proces JobStore ).

Program planujący nie jest niszczony, a można ponownie uruchomić w dowolnym momencie.

pauseAll:

void pauseAll() rzuca SchedulerException Pauza wszystkim wyzwala - podobny do wywoływania pauseTriggerGroup (grupa) na każdym grupy, jednak po użyciu tego metody resumeAll() musi być wywołane do wyczyścić stan programu planującego z "pamiętając", że wszystkie nowe wyzwalacze zostaną wstrzymane po dodaniu. Zostaną zastosowane

Kiedy resumeAll() jest wywoływana (do un-pauza), niewypał spust instrukcje.

0

Start() i standby() są metodami dla poszczególnych instancji. Inne wystąpienia uruchomione w trybie klastrowym będą powodować wyzwalanie zadań.

resumeAll() i pauseAll() ma zastosowanie do całego klastra.

0

Podczas pauseAll() wstrzymuje wszystkie harmonogramy (już utworzone przez tę chwilę), standby() wstrzymuje samym w sobie harmonogramu. Tak więc po utworzeniu nowego harmonogramu po pauseAll() zostanie on zaplanowany i uruchomiony poprawnie, ale w przypadku standby() uruchomi się nie wcześniej niż metoda "start()" zostanie wywołana w harmonogramie.

Powiązane problemy