Zum Hauptinhalt springen

Cron Ausdrücke

Cron Ausdrücke

Cron-Ausdrücke verwenden Sie, um Instanzen von CronTrigger zu konfigurieren. Ein Cron-Ausdruck ist eine Zeichenfolge aus sieben Unterausdrücken, die einzelne Details des Zeitplans beschreiben. Die Unterausdrücke sind durch Leerzeichen getrennt und stellen Folgendes dar:

  1. Sekunden

  2. Minuten

  3. Stunden

  4. Monatstag

  5. Monat

  6. Wochentag

  7. Jahr (optionales Feld)

Ein Beispiel für einen vollständigen Cron-Ausdruck ist die Zeichenfolge „0 0 12 ? * MI“ – was „jeden Mittwoch um 12:00 Uhr“ bedeutet.

Einzelne Teilausdrücke können Bereiche und/oder Listen enthalten. Beispielsweise könnte das Wochentagfeld im vorherigen Beispiel (das „WED“ lautet) durch „MON-FRI“, „MON,WED,FRI“ oder sogar „MON-WED,SAT“ ersetzt werden.

Platzhalter (das Zeichen ' ') können verwendet werden, um „jeden“ möglichen Wert dieses Felds anzugeben. Daher bedeutet das Zeichen „ “ im Feld „Monat“ des vorherigen Beispiels einfach „jeden Monat“. Ein '*' im Wochentagfeld würde also offensichtlich "jeden Tag der Woche" bedeuten.

Alle Felder haben einen Satz gültiger Werte, die angegeben werden können. Diese Werte sollten ziemlich offensichtlich sein – wie die Zahlen 0 bis 59 für Sekunden und Minuten und die Werte 0 bis 23 für Stunden. Der Monatstag kann ein beliebiger Wert zwischen 1 und 31 sein, aber Sie müssen vorsichtig sein, wie viele Tage ein bestimmter Monat hat! Monate können als Werte zwischen 0 und 11 oder mit den Zeichenketten JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV und DEC angegeben werden. Wochentage können als Werte zwischen 1 und 7 (1 = Sonntag) oder mit den Zeichenfolgen SUN, MON, TUE, WED, THU, FRI und SAT angegeben werden.

Verwenden Sie das Zeichen '/', um Inkremente von Werten anzugeben. Wenn Sie beispielsweise „0/15“ in das Feld „Minuten“ eingeben, bedeutet dies „jede 15. Minute der Stunde, beginnend bei Minute Null“. Wenn Sie „3/20“ im Feld „Minuten“ verwenden, bedeutet dies „jede 20. Minute der Stunde, beginnend bei Minute drei“ – oder mit anderen Worten, es ist dasselbe wie die Angabe von „3,23,43“ im Feld „Minuten“. Beachten Sie die Subtilität, dass „ /35“ *nicht „alle 35 Minuten“ bedeutet – es bedeutet „jede 35. Minute der Stunde, beginnend bei Minute Null“ – oder mit anderen Worten dasselbe wie die Angabe von „0,35“.

Das Zeichen '?' ist für die Felder Tag des Monats und Tag der Woche zulässig. Es gibt „keinen bestimmten Wert“ an. Das ist nützlich, wenn Sie etwas in einem der beiden Felder angeben müssen, aber nicht im anderen.

Das Zeichen „L“ ist für die Felder „Tag des Monats“ und „Tag der Woche“ zulässig. Dieses Zeichen ist eine Abkürzung für „last“, hat aber in jedem der beiden Felder eine andere Bedeutung. Beispielsweise bedeutet der Wert „L“ im Feld „Tag des Monats“ „der letzte Tag des Monats“ – Tag 31 für Januar, Tag 28 für Februar in Nicht-Schaltjahren. Wenn es allein im Feld für den Wochentag verwendet wird, bedeutet es einfach „7“ oder „SAT“. Aber wenn es im Wochentagfeld nach einem anderen Wert verwendet wird, bedeutet es „der letzte xxx Tag des Monats“ – zum Beispiel bedeuten „6L“ oder „FRIL“ beide „der letzte Freitag des Monats“. Sie können auch einen Offset vom letzten Tag des Monats angeben, z. B. „L-3“, was den drittletzten Tag des Kalendermonats bedeuten würde. Wenn Sie die Option „L“ verwenden, ist es wichtig, keine Listen oder Wertebereiche anzugeben, da Sie sonst verwirrende/unerwartete Ergebnisse erhalten.

Das 'W' wird verwendet, um den Wochentag (Montag-Freitag) anzugeben, der dem angegebenen Tag am nächsten liegt. Wenn Sie beispielsweise „15W“ als Wert für das Feld Tag des Monats angeben, bedeutet dies: „der Wochentag, der dem 15. des Monats am nächsten liegt“.

Mit '#' wird „der n-te“ XXX Wochentag des Monats angegeben. Beispielsweise bedeutet der Wert „6#3“ oder „FRI#3“ im Feld für den Wochentag „der dritte Freitag des Monats“.

Beispiel Cron-Ausdrücke

CronTrigger Beispiel 1 – ein Ausdruck zum Erstellen eines Triggers, der einfach alle 5 Minuten ausgelöst wird

“0 0/5 * * * ?”

CronTrigger Beispiel 2 – ein Ausdruck zum Erstellen eines Triggers, der alle 5 Minuten ausgelöst wird, 10 Sekunden nach der Minute (dh 10:00:10 Uhr, 10:05:10 Uhr usw.).

“10 0/5 * * * ?”

CronTrigger Beispiel 3 – ein Ausdruck zum Erstellen eines Triggers, der jeden Mittwoch und Freitag um 10:30, 11:30, 12:30 und 13:30 Uhr ausgelöst wird.

„0 30 10-13 ? * MI, FR“

CronTrigger-Beispiel 4 – ein Ausdruck zum Erstellen eines Triggers, der am 5. und 20. jedes Monats jede halbe Stunde zwischen 8:00 und 10:00 Uhr ausgelöst wird. Beachten Sie, dass der Auslöser NICHT um 10:00 Uhr ausgelöst wird, sondern nur um 8:00, 8:30, 9:00 und 9:30 Uhr

“0 0/30 8-9 5,20 * ?”

Beachten Sie, dass einige Planungsanforderungen zu kompliziert sind, um sie mit einem einzigen Trigger auszudrücken – wie „alle 5 Minuten zwischen 9:00 und 10:00 Uhr und alle 20 Minuten zwischen 13:00 und 22:00 Uhr“. Die Lösung in diesem Szenario besteht darin, einfach zwei Trigger zu erstellen und beide zu registrieren, um denselben Job auszuführen.

Hat dies deine Frage beantwortet?