2010-09-06 9 views
14

Ich verwende Quartz Scheduler v.1.8.0.Was ist der Unterschied zwischen dem Standby() und pauseAll() des Schedulers?

Was ist der Unterschied zwischen scheduler.standby() und scheduler.pauseAll()?

Standby-Modus() - hält Vorübergehend das Brennen des Schedulers von Trigger.

pauseAll() - Pause alle Trigger - ähnlich pauseTriggerGroup (Gruppe) auf jeder Gruppe zu nennen, aber nach dieser Methode resumeAll() verwenden müssen klar den Zustand der Scheduler aufgerufen werden ' Beachten Sie, dass alle neuen Trigger pausiert werden, wenn sie hinzugefügt werden.

Basierend auf dem, was ich aus der API-Dokumentation verstanden habe, kann ich mich nicht einfach/klar von jedem einzelnen unterscheiden. Ich sehe, dass beide den gleichen Zweck erfüllen - zeitweise alle Trigger im Scheduler pausieren/stoppen und anschließend gefolgt von einem start() (für den Standby) oder resumeAll() (für pauseAll) Status des Schedulers. Gibt es einen anderen Unterschied?

Hope Experten können mir helfen, jeden feinen Unterschied zu verstehen.

Antwort

16

Der Unterschied liegt in der Anwendung von Trigger Fehlzündungsanweisungen.

Wenn Sie start() nach dem Standby-Modus() aufrufen, werden Fehlzündungen, die im Standby-Modus auftreten, ignoriert.

Wenn Sie resumeAll() nach pauseAll() aufrufen, werden alle Fehlzündungen übernommen, die beim Pausieren des Schedulers auftraten.

+1

Dies ist falsch. Wenn Sie Standby() und dann Start() aufrufen, werden die Fehlzündungen des Triggers nur während der Ausführung von start() ignoriert, und nicht die gesamte Dauer zwischen dem Aufruf von Standby() und Start(). – pkrish

6

Es gibt einen Unterschied, wenn der Scheduler nach standby und pauseAll wieder aufgenommen wird.

Ich habe in der folgenden Beschreibung aus der API-Dokumentation in Fettdruck gemacht.

Standby:

Leere Standby-Modus() wirft SchedulerException Vorübergehend die Auslösen von Triggern des Scheduler stoppt.

Wenn start() (bringt die Scheduler aus Stand-by-Modus) aufgerufen wird, werden Triggerfehlzündung Anweisungen NICHT während der Ausführung des start() -Methode angewandt werden - etwaige Fehlzündungen sein sofort erkannt (durch den JobStore normalen Prozess).

Der Scheduler wird nicht zerstört, und kann jederzeit neu gestartet werden.

pauseAll:

Leere pauseAll() wirft SchedulerException Pause alle löst - ähnlich pauseTriggerGroup (Gruppe) auf jeder Gruppe zu nennen, aber nach der Verwendung dieser Methode resumeAll() muss aufgerufen werden, um den Scheduler-Status zu löschen, der daran erinnert, dass alle neuen Trigger pausiert werden, wenn sie hinzugefügt werden.

Wenn resumeAll() (zur un-Pause) genannt wird, Fehlzündungstrigger Anweisungen angewendet.

0

start() und standby() sind per-instance-Methoden. Andere Instanzen, die im Clustermodus ausgeführt werden, lösen weiterhin Jobs aus.

resumeAll() und pauseAll() gilt für den gesamten Cluster.

0

Während pauseAll() Pausen alle Pläne (bereits von diesem Moment erstellt), standby() Pausen einen Planer selbst. Wenn Sie also einen neuen Zeitplan erstellen, wird er nach pauseAll() geplant und ordnungsgemäß ausgeführt, aber im Fall von standby() wird er nicht früher ausgeführt, als eine Methode 'start()' für einen Scheduler aufgerufen wird.