2017-08-02 2 views
1

Ich habe einen Cluster mit zwei Knoten, die mit der gleichen Datenbank verbunden ist, und einen geplanten Job, der von Quartz Scheduler in jeder 10. Minute initiiert wird. In quartz.properties ist org.quartz.jobStore.isClustered=true eingestellt.Quartz Scheduler Job in Clustered Umgebung

Ich bin interessiert, ob der Scheduler den Job für den gleichen Knoten ausgibt, bis er in jeder 10. Minute erreichbar ist, oder er verwendet eine Art von Algorithmus, um zu bestimmen, welcher Knoten den Job erledigt.

Ich habe nichts darüber in der Dokumentation (http://www.quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering.html) gefunden.

Vielen Dank.

Antwort

2

Ich fand diese in den Quarz-Tutorials:

nur ein Knoten wird die Arbeit für jede Zündung ausgelöst. Was ich damit meine ist, wenn der Job einen wiederholenden Trigger hat, der ihn alle 10 Sekunden auslöst, dann wird um 12:00:00 genau ein Knoten den Job ausführen, und um 12:00:10 wird genau ein Knoten laufen der Job usw. Es wird nicht immer derselbe Knoten sein - es wird mehr oder weniger zufällig sein, welcher Knoten ihn ausführt. Der Lastausgleichsmechanismus ist für viel beschäftigte Scheduler nahezu zufällig (viele Trigger), bevorzugt jedoch den gleichen Knoten, der gerade für nicht-ausgelastete Scheduler (z. B. ein oder zwei Trigger) aktiv war.

http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-11.html

Verwandte Themen