Wir verwenden den Quartz-Scheduler in einer Cluster-Umgebung (Zwei Knoten in einem Cluster, die auf eine einzelne Oracle-Datenbank verweisen). Derzeit haben wir zwei Jobs , die ziemlich jede Stunde laufen.
Wir haben ein separates Datenbankschema für die Quarzjobs. Was wir festgestellt haben, ist, dass Quarz die Datenbank alle 15 Sekunden überprüft (Standardwert für clusterCheckinInterval ).
Wir mögen das nicht und möchten es weniger frequest machen. Was wir im Sinn haben, ist eine Häufigkeit von 1 Minute, aber die meisten der Beispielkonfigurationen haben clusterCheckinInterval als 20000 angegeben.
Kann ein Körper bitte einen geeigneten Wert für das clusterCheckinInterval empfehlen?
Aus der Quarz-Dokumentation:
%Vor% in Quartz-Clustern zeigt clusterCheckinInterval
an, wie verantwortlich Ihr Cluster für das Failover ist (unter Berücksichtigung von Quartz-Jobs). Je kleiner das Intervall ist, desto schneller kann Ihre Anwendung reagieren. Tatsächlich wird dieser Wert von Clusterknoten verwendet, um zu prüfen, ob wiederherstellbare Jobs auf einem fehlerhaften Knoten ausgeführt werden. Wenn ja, versucht Quartz, sie erneut auszuführen.
Im Allgemeinen ist der Standardwert gut genug, aber Sie müssen die Häufigkeit von Jobs und den Effekt berücksichtigen, den ein verpasster Joblauf verursachen kann.
Wenn Sie eine Anzahl von Jobs haben, die in jeder Sekunde ausgeführt werden müssen, müssen Sie das Intervall auf 1000
(in Millisekunden) setzen.
Wenn Sie Jobs haben, die jede Sekunde ausgeführt werden, aber es ist nicht entscheidend, sie ständig auszuführen, dann sind 5-15 Sekunden ausreichend (abhängig von der Fehlertoleranz des Systems).
Wenn Sie Stunden lang laufende Jobs haben, die mehrmals am Tag ausgeführt werden, können Sie das Intervall sogar auf 60 Sekunden erhöhen.
Meine Meinung ist, dass ich würde nicht 20-30 Datenbankanforderung pro Minute als "laden" betrachten, also würde ich es auf 2 oder 3 Sekunden ( 2000
oder 3000
in Millisekunde).
Tags und Links java spring quartz-scheduler