Der Ausdruck 0 9 * * 1-5
Der Cron-Ausdruck 0 9 * * 1-5 wird um 9:00 Uhr, von Montag bis Freitag, ausgelöst. Aufgeschlüsselt auf die fünf Felder: Minute (0), Stunde (9), Tag des Monats (*), Monat (*), Wochentag (1-5). Das * bei Tag des Monats und Monat bedeutet jeden Tag eines jeden Monats, aber die Wochentagseinschränkung überschreibt dies.
Wochentagsnummerierung
| Nummer | Tag |
|---|---|
| 0 | Sonntag |
| 1 | Montag |
| 2 | Dienstag |
| 3 | Mittwoch |
| 4 | Donnerstag |
| 5 | Freitag |
| 6 | Samstag |
| 7 | Sonntag (Alias für 0) |
Benannte Tagesaliase
0 9 * * MO-FR # gleichbedeutend mit 0 9 * * 1-5
0 9 * * MO,MI,FR # Nur Montag, Mittwoch, Freitag
0 9 * * DI,DO # Dienstag und Donnerstag
Ein wichtiger Eckfall: Interaktion von dom und dow
Wenn sowohl das Monatstags- als auch das Wochentagsfeld auf etwas anderes als * gesetzt sind, wird der Job in der Vereinigungsmenge der beiden Einschränkungen ausgeführt, nicht im Schnitt.
0 9 15 * 1-5 # wird am 15. des Monats ODER an jedem Montag bis Freitag ausgeführt
In 0 9 * * 1-5 ist der Monatstag *, daher gilt dieser Eckfall nicht. Der Job wird streng an Werktagen ausgeführt.
Planungsmuster für Geschäftszeiten
0 9 * * 1-5 # wird um 9:00 Uhr an Werktagen ausgelöst
0 9,17 * * 1-5 # um 9 und 17 Uhr, nur Werktage
*/15 9-17 * * 1-5 # alle 15 Min, 9 bis 17 Uhr, Werktage
0 8 * * 1-5 # um 8 Uhr an Werktagen
Nächste Ausführungszeiten überprüfen
from croniter import croniter
from datetime import datetime
cron = croniter("0 9 * * 1-5", datetime.now())
for _ in range(5):
print(cron.get_next(datetime))