Quartz Scheduler - Verhalten bei PC Neustart

izoards

Bekanntes Mitglied
Hallo Java Community,

Ich habe bis jetzt den Quartz Scheduler verwendet um gewisse Jobs zu einer bestimmten Zeit (z.B. Täglich Mon-Fr, jeweils um 06:00 und 18:00) zu starten.
Nun habe ich eine neue Anforderung und möchte einen Job alle 14 Tage um 03:00 Uhr starten.
Das sollte ja kein Problem sein.
Jedoch frage ich mich nun, was passiert, wenn

- Das Programm bzw. der PC zu diesem Zeitpunkt nicht läuft? (Wird der Job nachgeholt?)
- Was passiert allgemein, wenn Das Programm neu gestartet wird, während diesen 14 Tagen?

Wie kann dies persistent gespeichert werden? So dass ein Neustart des Programmes bzw. ein Neustart des PC's kein Einfluss auf den 14 Tage Rhythmus hat?

Danke für eure Hilfe,
 

httpdigest

Top Contributor

izoards

Bekanntes Mitglied
Besten Dank für die schnelle Rückmeldung.
Gibt es auch eine Möglichkeit ohne Datenbank zu arbeiten? Wollte eigentlich keine mySQL Datenbank für diese Anwendung.
 

izoards

Bekanntes Mitglied
Habe gesehen, dass es eine Variante mit TerracottaJobStore gibt und auch eine andere Variante mit einer eingebetteten H2 Datenbank.
Was würdet Ihr empfehlen?
Leider habe ich bis jetzt erst einmal mit einer mySQL Datenbank gearbeitet, darum vermutlich eine dumme Frage:

Was ich nicht verstehe, hier
https://howtodoinjava.com/spring-batch/quartz-h2-jdbcjobstore-example/

steht:

"Quartz does not create the necessary tables in database automatically, you need to create them while application startup. I have done using org.quartz.dataSource.myDS.URL property above. Schema queries are in schema.sql file."

Also die Datenbank muss bei der eingebetteten Variante beim starten der Applikation erstellt werden?

Werden dann nicht die persistenten Job Details gelöscht?
 

izoards

Bekanntes Mitglied
Also, ich bin schon einiges weiter :)
Ich möchte nun eine eingebettete H2 Datenbank für diesen Zweck verwenden.

Dieser Eintrag hilft mir schon sehr.

Bevor ich mich nun an einen ersten Versuch wage, ist es richtig, dass ich die Datenbank für den Quartz Scheduler einmalig (über Java) erstelle?
Also erstellen, nur sofern diese nicht schon erstellt wurde?
So wie im "Eintrag" erklärt?

Oder erstellt man die Datenbank über die H2 Konsole einmalig? Und nicht über Java?

Danke für die Hilfe 🙏
 

Oben