Cron

Der Cron Trigger ist ein leistungsstärkerer, zeitbasierter Trigger als der Zeit Trigger. Hier kann ein Crontab ähnlicher Ausdruck eingerichtet werden, um die Aufgabe wiederholt auszulösen.

Syntax

Der Cron Trigger verwendet die QUARTZ Syntax ohne Sekunden in der folgenden Form:

<Minute> <Stunde> <TagDesMonat> <Monat> <TagDerWoche> <Jahr>
  • <Minute> : Minute der Stunde (0-59), * für jede Minute
  • <Stunde> : Stunde des Tages (0-23), * für jede Stunde
  • <TagDesMonat>: Tag des Monats (1-31, L, W), * für jeden Tag des Monats; ? wenn dieser Wert ausgelassen und anstelle dessen <TagDerWoche> verwendet wird
    • L steht für den letzten Tag des Monats
    • W steht für einen Tag von Montag bis Freitag innerhalb der Woche
  • <Monat> : Monat des Jahres (1-12 oder JAN-DEC), * für jeden Monat
  • <TagDerWoche>: Tag der Woche (1-7, SU-SA, L), * für jeden Tag der Woche; ? wenn dieser Wert ausgelassen und anstelle dessen <TagDesMonat> verwendet wird
    • L steht für den letzten Tag der Woche
  • <Jahr>: das Jahr (1970-2099, optional)

Einer der beiden Werte <TagDesMonat> und <TagDerWoche> muss ? sein, da sie sich gegenseitig widersprechen. Der Wert <Jahr> kann weggelassen werden. Für jeden Wert kann ein Sternchen (*) verwendet werden, um alle möglichen Werte anzugeben. Wertebereiche (z.B. 1-5), Listen (z.B. JAN, FEB, MAR) und inkrementelle Werte (z.B. 0/15 für 0, 15, 30, 45) sind ebenfalls erlaubt.

Das Quartz Cron Tutorial hat viele Hinweise, wie man einen Ausdruck erstellt.

Beispiele

  • 0 8 * * ? - jeden Tag um 8:00 Uhr.
  • 0 8 15,20 JAN ? - Am 15. und 20. Januar um 8:00 Uhr.
  • 30 18 ? 4,5,6 6#1 - Am ersten Freitag um 18:30 Uhr im April, Mai und Juni.

Bekannte Einschränkung

Monatliche wiederholte Aufgaben für Tage, die nicht existieren, werden in diesem Monat nicht ausgeführt. Beispiel: 0 0 8 31 * ? wird nur in den Monaten Januar, März, Mai, Juli, August, Oktober und Dezember ausgeführt werden. Wenn es gewünscht wird, die Aufgabe am letzten Tag jeden Monats auszuführen, kann man dafür die Syntax "L" benutzen, die für den "letzten Tag" steht - d.h. 0 0 8 L * ?

Aufgaben die Montags bis Freitags laufen werden fälschlicherweise auch am Samstag ausgeführt wenn der Freitag der letzte Arbeitstag des Monats ist.

Weitere Informationen finden Sie unter https://github.com/jmrozanec/cron-utils/issues.