Cronjobs werden in wiederkehrenden Intervallen geplant, die in einem auf unix-cron basierenden Format angegeben werden. Sie können einen Zeitplan definieren, sodass der Job mehrmals am Tag oder an bestimmten Tagen und in bestimmten Monaten ausgeführt wird. Die alte Cron-Syntax von App Engine wird für vorhandene Jobs weiterhin unterstützt, obwohl wir deren Verwendung nicht mehr empfehlen.
Format des Cronjobs
Ein Zeitplan wird im Unix-Cron-Stringformat (* * * * *
) definiert. Dabei handelt es sich um eine Gruppe von fünf Feldern in einer Zeile, die angeben, wann der Job ausgeführt werden soll.
Sie können entweder die Google Cloud Console, die Google Cloud CLI oder die REST API von Cloud Scheduler verwenden, um Ihren Zeitplan festzulegen.
Die Zeitfelder haben das folgende Format und mögliche Werte und müssen in dieser Reihenfolge angegeben werden:
Feld | Format gültiger Werte |
---|---|
Minute | 0–59 |
Stunde | 0–23 |
Day of the month | 1–31 |
Monat | 1–12 (oder JAN bis DEC) |
Wochentag | 0–6 (oder Sonntag bis Samstag; oder 7 für Sonntag) |
Minute: Gibt in Minuten an, wie weit über die Stunde hinaus Ihr Job ausgeführt wird. Wenn die Minute beispielsweise auf
0
festgelegt ist, wird der Job zu Beginn der vollen Stunde ausgeführt, da dieser 0 Minuten nach der vollen Stunde liegt. Wenn es 08:00 Uhr ist, wird der Job um 8:00 Uhr ausgeführt.Stunde: Der
hour
gibt an, wie weit nach Mitternacht Ihr Job noch ausgeführt wird. Der Wert wird in Stunden auf die nächste Stunde abgerundet, da im Feldminute
verbleibende Minuten angegeben werden. Mitternacht ist0
und Mittag ist12
. Wenn die Stunde beispielsweise auf0
gesetzt ist, wird der Job um Mitternacht ausgeführt (weil diese 0 Stunden nach Mitternacht ist).Tag des Monats:Gibt das Kalenderdatum des Monats an. Beispiel:
1
für den ersten Tag des Monats. Cloud Scheduler unterstütztL
nicht als den letzten Tag des Monats.Monat:Gibt den Monat an. Geben Sie die Monatsnummer oder die ersten drei Buchstaben des Monatsnamens in Großbuchstaben an. Beispiel:
1
für Januar oder entsprechendJAN
.Wochentag:Gibt den Wochentag an. Montag ist
1
, Dienstag ist2
und so weiter. Entweder0
oder7
können Sonntag angeben. Geben Sie den Wochentag entweder als Zahl oder mit den ersten drei Buchstaben des Wochentagsnamens in Großbuchstaben an (z. B.SUN
für Sonntag).- Dieses Feld wird als einschließendes
OR
mit dem Feldday of the month
ausgewertet, es sei denn, eines dieser Felder wird durch ein Sternchen (*
) als uneingeschränkt gekennzeichnet. Wenn für den Tag des Monats beispielsweise1
und für den WochentagSAT
festgelegt ist, wird der Job am ersten Tag des Monats und an jedem Samstag des Monats ausgeführt, auch wenn der erste Tag des Monats kein Samstag ist. Wenn der Wochentag nicht eingeschränkt ist (auf*
gesetzt), wird der Job nur am ersten Tag des Monats ausgeführt.
- Dieses Feld wird als einschließendes
Alle Werte abgleichen
Verwenden Sie das Sternchen, um alle Werte für ein Feld abzugleichen: *
. Wenn ein Feld auf das Sternchen gesetzt ist, stimmt das Feld mit allen gültigen Werten für dieses Feld überein, wenn die anderen Feldbedingungen erfüllt sind. Wenn ein Feld auf das Sternchen gesetzt wird, wird dies auch als uneingeschränktes Feld bezeichnet, da es nicht auf einen bestimmten Wert beschränkt ist.
Hier zwei Beispiele, in denen das Minutenfeld uneingeschränkt bleibt:
* 0 1 1 1
: Der Job wird jede Minute in der Mitternachtsstunde am 1. Januar und montags ausgeführt.* * * * *
: Der Job wird jede Minute ausgeführt (zu jeder Stunde, an jedem Tag des Monats, jedes Monats, an jedem Tag der Woche, weil auch jedes dieser Felder uneingeschränkt ist).
Das Sternchen entspricht einem Sonderfall eines Bereichs, bei dem der Bereich beim ersten gültigen Wert für das Feld beginnt und beim letzten gültigen Wert für das Feld endet (z. B. 0-59
für das Minutenfeld).
Übereinstimmung mit einem Bereich
Wenn Sie einen bestimmten Wertebereich abgleichen möchten, geben Sie Start- und Stoppwerte getrennt durch einen Bindestrich (-
) an. Der Bereich darf keine Leerzeichen enthalten. Die Bereiche sind inklusiv. Die erste Zahl muss kleiner als die zweite Zahl sein. Wenn Sie abgekürzte Namen für den Monat oder den Wochentag verwenden (z. B. JAN
anstelle von 1
für den ersten Monat des Jahres), muss der erste Wert im Monat oder in der Woche vor dem zweiten Wert stehen.
Die folgenden Beispiele werden montags, dienstags, mittwochs, donnerstags und freitags (alle Monate) um Mitternacht ausgeführt:
0 0 * * 1-5
0 0 * * MON-FRI
Abgleich mit einer Liste
Listen können jeden gültigen Wert für das Feld enthalten, einschließlich Bereiche.
Geben Sie Ihre Werte durch Kommas getrennt (,
) an. Die Liste darf keine Leerzeichen enthalten.
Beispiele:
0 0,12 * * *
: Der Job wird um Mitternacht und mittags ausgeführt.0-5,30-35 * * * *
: Der Job wird in den ersten 5 Minuten jeder halben Stunde ausgeführt (zu vollen und halben Stunde).
Werte in einem Bereich überspringen
Sie können Werte in einem Bereich überspringen, indem Sie eine Rate angeben, mit der der Bereich durchgegangen werden soll. Dies wird manchmal als Schrittfunktion (oder Schrittwert oder Ratenausdruck) bezeichnet. Geben Sie dazu den Bereich an, gefolgt vom Schrägstrich (/
) und der Rate, mit der Sie den Bereich überspringen möchten.
Sie können das Sternchen (*
) verwenden, um den Bereich aller Werte für das Feld anzugeben. Wenn Sie das Sternchen verwenden, ist der erste Wert im Bereich 0 für die Felder für Minute, Stunde und Wochentag (Sonntag) und 1 für Tag des Monats und Monats.
Der Schrittwert darf nicht größer sein als der größtmögliche Wert für das Feld.
Der Standardschritt ist 1. Für die Schrittfunktion /1
wird also überhaupt keine Schrittfunktion verwendet.
Beispielbereiche, in denen Schrittfunktionen verwendet werden:
*/2
: Dies ist eine gültige Schrittfunktion für jedes Feld. Im Minutenfeld entspricht er 0, 2, 4, ... , 58. Für die Stunde entspricht sie 0, 2, 4, ... , 22. Für den Tag des Monats entspricht er 1, 3, 5, ... , 31 (für einen Monat mit 31 Tagen). Für den Monat entspricht er 1, 3, 5, ... , 11. Für den Wochentag entspricht er 0, 2, 4, 6.0-12/2
: Dies ist eine gültige Schrittfunktion für die Felder für Minute und Stunde. Er stimmt mit 0, 2, 4, ... , 12 überein.
Beispielpläne mit Schrittfunktionen:
*/2 * * * *
: Der Job wird alle zwei Minuten ausgeführt.0 0-12/2 * * *
: Der Job wird alle zwei Stunden zur vollen Stunde ausgeführt. Der erste Lauf ist um Mitternacht. Die letzte Ausführung ist um 12:00 Uhr.
Beispielzeitpläne
Die folgende Tabelle enthält einige Beispiele für Cronjob-Zeitpläne und ihre Beschreibung:
Zeitplan | Format des Cronjobs | Erklärung |
---|---|---|
Jede Minute | * * * * * |
Wird minutengenau ausgeführt. Beispiel: 9:00 Uhr, 9:01 Uhr, 2:02 Uhr usw. |
Stündlich | 0 * * * * |
Wird zur vollen Stunde ausgeführt. Beispiel: 9:00 Uhr, 10:00 Uhr, 11:00 Uhr usw. |
Täglich | 0 0 * * * |
Wird täglich um 00:00 Uhr (00:00 im 24-Stunden-Format) ausgeführt. |
Jeden Wochentag (Mo–Fr) |
Folgendes ist äquivalent:
|
Er wird montags, dienstags, mittwochs, donnerstags und freitags um 00:00 Uhr (24-Stunden-Format) durchgeführt. |
Wöchentlich | Folgendes ist äquivalent:
|
Wird sonntags um 00:00 Uhr ausgeführt (00:00 Uhr im 24-Stunden-Format). |
Monatlich | 0 0 1 * * |
Wird am ersten Tag des Monats um 00:00 Uhr (00:00 Uhr im 24-Stunden-Format) ausgeführt. |
Jedes Quartal | Folgendes ist äquivalent:
|
Ausführung am ersten Tag des Quartals um 00:00 Uhr (00:00 Uhr im 24-Stunden-Format) für einen standardmäßigen vierteljährlichen Zeitplan: 1. Januar, 1. April, 1. Juli und 1. Oktober. |
Jedes Jahr | Folgendes ist äquivalent:
|
Wird um 00:00 Uhr (00:00 Uhr im 24-Stunden-Format) am ersten Tag des ersten Monats des Jahres (1. Januar) ausgeführt. |
Zeitzone
Sie können die Zeitzone für die Bewertung des Zeitplans entweder in der Google Cloud Console auswählen (wählen Sie auf der Seite Job erstellen eine Zeitzone aus der Liste aus) oder über das Flag gcloud
--time-zone
, wenn Sie den Job erstellen. Die Standardzeitzone ist Etc/UTC
.
In einigen Zeitzonen kann die Sommerzeit dazu führen, dass Jobs ausgeführt oder nicht unerwartet ausgeführt werden. Das liegt daran, dass Cloud Scheduler nach der tatsächlich verstrichenen Zeit ausgeführt wird. In Fällen, in denen eine Zeit zweimal auftreten kann (z. B. wenn die Uhren zurückgestellt werden) und Ihr Job zu diesem Zeitpunkt geplant ist, kann der geplante Job Ausführungsanomalien beobachten.
Wenn Ihr Job einen sehr spezifischen Rhythmus erfordert, sollten Sie eine Zeitzone auswählen, in der die Sommerzeit nicht berücksichtigt wird. UTC wird insbesondere für Cloud Scheduler empfohlen, um das Problem vollständig zu vermeiden.