2013-10-09 16 views
6

Die Dokumentation für JobDetail.requestsRecovery Eigenschaft stellt die folgendeQuarz jobDetail requestRecovery

Weist den Scheduler, ob der Job sollte erneut ausgeführt werden, wenn eine ‚Verwertung‘ oder "Fail-Over-Situation angetroffen wird.

Nun, was ist eine "Recovery" -Situation oder eine "Fail-Over" -Situation?

Wie sind sie anders?

Erfolgt die Wiederherstellung nur, wenn die JVM während der Jobausführung abstürzt oder tritt sie auf, wenn die Jobausführung wegen einer Ausnahme fehlschlägt?

Antwort

6

A "Recovery-Situation" ist der Oberbegriff, eine Art von Wiederherstellungssituation ist die "Fail-Over".

Ein Failover ist ein Prozess, der von Fehlertoleranzsystemen verwendet wird, die allgemein mit Redundanz verwendet werden (z. B. Clustering). Quarz Verwendung Failover, wenn in Clustering verwendet wird und mehr Quarz "Knoten" existiert.

documentation Zitiert:

Failover- tritt auf, wenn einer der Knoten während in der Mitte nicht der Ausführung eines oder mehr Aufträge. Wenn ein Knoten ausfällt, erkennen die anderen Knoten die Bedingung und identifizieren die Jobs in der Datenbank, die innerhalb des ausgefallenen Knotens ausgeführt wurden. Alle Jobs, die für die Wiederherstellung markiert sind (mit der Eigenschaft "Requests Recovery" in der JobDetail), werden von den verbleibenden Knoten erneut ausgeführt.

A Wiederherstellungssituation ist jede Situation, die einen „Hard-shutdown“ erzeugen (das heißt, den Prozess innerhalb abstürzt läuft, oder die Maschine abgeschaltet wird).


Ihre zweite Frage zu beantworten:

  • Wenn die JVM während einer Jobausführung abstürzt> Quartz wird die Arbeit erholen

    (Da ein Absturz Situation Wiederherstellung)

  • Wenn die Jobausführung aufgrund einer Ausnahme fehlschlägt> Quartz wird den Job nicht wiederherstellen

this Antwort Erholung zu aktivieren, für Ihre Jobs anzeigen (Da Ausnahme nicht schwer Abschaltung ist, eine Fehlzündung wird stattdessen geworfen).