2012-11-29 2 views
5

Ich möchte Quartz Scheduler Rahmen in meiner Anwendung verwenden. Ich stieß auf zwei Arten von JobStores:Quartz Scheduler - Was der Unterschied zwischen RAM und JDBC Job speichern

1) RAM Job Shop

2) JDBC Job zu speichern.

Ich frage mich, in welchem ​​Fall ich welchen Jobspeicher verwenden muss. Und was sind die Vor- und Nachteile zwischen ihnen?

Alle Gedanken dazu sind wirklich hilfreich für mich und ich schätze es.

Antwort

5

JDBC Job speichert Informationen über gefeuert Trigger und Arbeitsplätze in der Datenbank gespeichert, so dass:

  • es wird nicht Zündungen verlieren, wenn die Anwendung nach unten ist, als Trigger ausgelöst wurde angenommen, (dies hängt von den gewählten Fehlzündung Anweisung)

  • Sie Ihren Scheduler Cluster können, wobei jeder Knoten die gleiche Datenbank

  • JDBC Auftragsspeicher verwendet, ist wesentlich langsamer

RAM-Jobspeicher ist nur in nicht geclusterten Anwendungen anwendbar, in denen das Löschen einer Zündung keine große Sache ist. Es ist auch viel schneller. Wenn Sie Quartz mit RAM-Jobspeicher verwenden möchten, benötigen Sie höchstwahrscheinlich überhaupt kein Quartz. Sowohl Spring als auch EJB bieten Mechanismen zum Ausführen periodischer Jobs, sowohl zeit- als auch CRON-basiert.

+0

, Wenn ich Jobdetails in XML-Dateien bestehen bleiben kann, dann kann ich mit RAMJobStore GoAhead. Ist das richtig? – Narendra

+0

@Narendra: wenn Sie einfach neu planen alle Aufträge beim Start, dann ja. Aber bedenken Sie, dass, wenn Ihr Auslöser annehmen, wird jede Stunde, aber Ihre Anwendung sank um 3 Stunden zu laufen, diese 3 Abschüsse mit RAM Speicher verloren. –

+0

Danke, dass Sie mich wissen lassen. Jetzt verstehe ich es. – Narendra

3

Der RAM-Jobspeicher ist sehr schnell, aber sehr unbeständig - Jobs überleben einen Serverneustart nicht.

Der JDBC-Jobspeicher ist ein wenig langsamer, aber da sich die Jobs in einem persistenten Speicher (der Datenbank) befinden, werden sie einen Neustart überleben.

Wenn Sie also nur kurzlebige Jobzeitpläne haben und diese beim Neustart des Servers oder bei der Neuverteilung der Anwendung verloren gehen, können Sie den RAM-Jobspeicher verwenden.

Wenn Sie die Gewissheit benötigen, dass Ihre Jobs ein Herunterfahren/Neustarten überleben, sollten Sie den JDBC-Jobspeicher verwenden. So

Verwandte Themen