Cronjobs werden zur Ausführung in wiederkehrenden Intervallen geplant, die in einem Format angegeben werden, das auf unix-cron basiert. In einem Zeitplan können Sie festlegen, ob der Job mehrmals am Tag oder an bestimmten Tagen und in bestimmten Monaten ausgeführt wird. Wir empfehlen zwar die Verwendung der alten Cron-Syntax von App Engine ist weiterhin für bestehende Jobs unterstützt wird.)
Cronjob-Format
Sie können entweder die Google Cloud Console, den Google Cloud CLI oder Cloud Scheduler REST API um Ihren Zeitplan festzulegen.
Ein Zeitplan wird im Unix-Cron-Stringformat (* * * * *
) definiert, bei dem es sich um einen Satz von fünf Feldern in einer Zeile handelt, der angibt, wann der Job ausgeführt werden soll.
Die Zeitfelder haben das folgende Format und mögliche Werte und müssen diese Bestellung:
|------------------------------- Minute (0-59) | |------------------------- Hour (0-23) | | |------------------- Day of the month (1-31) | | | |------------- Month (1-12; or JAN to DEC) | | | | |------- Day of the week (0-6; or SUN to SAT; or 7 for Sunday) | | | | | | | | | | * * * * *
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 SUN bis SAT oder 7 für Sonntag) |
Minute: gibt an, wie weit nach der Spitzen der Stunde Ihr Job ausgeführt wird, in Minuten. Wenn die Minute beispielsweise auf
0
festgelegt ist, wird der Job zu Beginn der Stunde ausgeführt, da dies 0 Minuten nach der vollen Stunde ist. Wenn also die Stunde 08:00 Uhr ist, wird der Job um 08:00 Uhr ausgeführt.Stunde:gibt an, wie weit nach Mitternacht Ihr Job ausgeführt wird, angegeben in Stunden. (auf die nächste Stunde abgerundet, da die verbleibenden Minuten angegeben sind) in das Feld
minute
ein. Mitternacht ist0
und Mittag ist12
. Wenn die Stunde beispielsweise auf0
festgelegt ist, wird der Job um Mitternacht ausgeführt, da dies 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 tut Folgendes nicht: unterstützenL
für 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 oderJAN
.Wochentag: gibt den Wochentag an. Montag ist am Dienstag
1
ist2
und so weiter. Entweder0
oder7
kann Sonntag angeben. Geben Sie den Tag an, die Woche durch die Zahl oder die ersten drei Buchstaben des Wochentagsnamens in Großbuchstaben angegeben werden (z. B.SUN
für Sonntag).- Dieses Feld wird zusammen mit dem Feld
day of the month
als inklusiverOR
ausgewertet, es sei denn, eines dieser Felder ist durch den Stern (*
) als uneingeschränkt gekennzeichnet. Wenn beispielsweise der Tag des Monats auf1
und der Wochentag aufSAT
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 uneingeschränkt ist (set auf*
), wird der Job nur am ersten Tag des Monats ausgeführt.
- Dieses Feld wird zusammen mit dem Feld
Übereinstimmung mit allen Werten
Wenn alle Werte für ein Feld abgeglichen werden sollen, verwenden Sie den Stern: *
. Wenn für ein Feld der Sternchen-Operator festgelegt ist, wird das Feld mit allen gültigen Werten für dieses Feld abgeglichen, wenn die anderen Feldbedingungen erfüllt sind. Wenn Sie ein Feld auf den Stern setzen, wird das Feld manchmal auch als uneingeschränkt bezeichnet, da es nicht auf einen bestimmten Wert beschränkt ist.
Im Folgenden finden Sie zwei Beispiele, in denen das Feld für die Minute uneingeschränkt bleibt:
* 0 1 1 1
: Der Job wird am 1. Januar jede Minute in der Mitternachtsstunde ausgeführt. und montags.* * * * *
: Der Job wird jede Minute (stündlich, an jedem Tag im jeden Monat, jeden Tag der Woche, weil jedes dieser Felder ist ebenfalls uneingeschränkt).
Das Sternchen entspricht dem Sonderfall eines Bereichs, wobei der
Der Bereich beginnt beim ersten gültigen Wert für das Feld und endet beim letzten gültigen Wert
Wert für das Feld (z. B. 0-59
für das Minutenfeld).
Übereinstimmung mit einem Bereich
Wenn Sie einen Wertebereich abgleichen möchten, geben Sie den Start- und Endwert durch einen Bindestrich (-
) getrennt an. Der Bereich darf keine Leerzeichen enthalten. Bereiche sind inkl. Die erste Zahl muss kleiner als die zweite Zahl sein. Wenn Sie abgekürzte
Namen für den Monat oder den Wochentag, z. B. JAN
statt 1
für den ersten
Monat des Jahres) muss der erste Wert früher im Monat oder in der Woche kommen als
den zweiten Wert.
Die folgenden äquivalenten Beispiele werden montags, dienstags, um Mitternacht Mittwochs, Donnerstags und Freitage (für alle Monate):
0 0 * * 1-5
0 0 * * MON-FRI
Liste abgleichen
Listen können beliebige gültige Werte für das Feld enthalten, einschließlich Bereiche.
Geben Sie die Werte durch Kommas (,
) getrennt an. Die Liste darf keine Leerzeichen enthalten.
Beispiele:
0 0,12 * * *
: Der Job wird um Mitternacht und Mittag ausgeführt.0-5,30-35 * * * *
: Der Job wird in den ersten fünf Minuten jeder halben Stunde (um 00:00 und 30:00 Uhr) ausgeführt.
Werte in einem Bereich überspringen
Sie können Werte in einem Bereich überspringen, indem Sie eine Rate angeben, mit der die einzelnen Schritte ausgeführt werden sollen.
durch den Bereich führen. Dies wird manchmal als Schrittfunktion (oder Schrittwert oder Steuersatzausdruck) bezeichnet. Geben Sie dazu den Bereich gefolgt vom Schrägstrich (/
) und der Geschwindigkeit an, 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 Minute,
Stunde und Wochentag (Sonntag) und 1 für den Tag des Monats und den Monat.
Der Schrittwert darf nicht größer sein als der größtmögliche Wert für das Feld.
Der Standardschritt ist 1. Die Schrittfunktion /1
ist also mit der Nichtverwendung einer Schrittfunktion identisch.
Beispielbereiche, die Schrittfunktionen verwenden:
*/2
: Dies ist eine gültige Schrittfunktion für jedes Feld. Für das Minutenfeld entspricht dies den Werten 0, 2, 4, …, 58. Für die Stunde entspricht er 0, 2, 4, ... , 22. Für den Tag des Monats entspricht das den Werten 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 das den Werten 0, 2, 4 und 6.0-12/2
: Dies ist eine gültige Schrittfunktion für die Felder „Minute“ und „Stunde“. Es entspricht den Zahlen 0, 2, 4, …, 12.
Beispielpläne mit Schrittfunktionen:
*/2 * * * *
: Der Job wird alle zwei Minuten ausgeführt.0 0-12/2 * * *
: Der Job wird alle zwei Stunden jeweils zur vollen Stunde ausgeführt. Die erste Ausführung um Mitternacht. Der letzte Lauf ist um 12:00 Uhr.
Beispielzeitpläne
Die folgende Tabelle enthält einige Beispiele für Cronjob-Zeitpläne und ihre Beschreibung:
Planen | Format für Cronjobs | Erklärung |
---|---|---|
Jede Minute | * * * * * |
Die Auslieferung erfolgt auf die Minute genau. Beispiel: 9:00 Uhr, 9:01 Uhr, 9:02 Uhr usw. |
Stündlich | 0 * * * * |
Wird stündlich ausgeführt. Beispiel: 9:00 Uhr, 10:00 Uhr, 11:00 Uhr usw. aktiviert. |
Täglich | 0 0 * * * |
Wird täglich um 00:00 Uhr (24-Stunden-Format) ausgeführt. |
Jeden Wochentag (Mo–Fr) |
Folgendes ist äquivalent:
|
Wird montags, dienstags, mittwochs, donnerstags und freitags um 00:00 Uhr (24-Stunden-Format) ausgeführt. |
Jede Woche | Folgendes ist äquivalent:
|
Wird sonntags um 00:00 Uhr (00:00 im 24-Stunden-Format) ausgeführt. |
Monatlich | 0 0 1 * * |
Wird um 00:00 Uhr (00:00 im 24-Stunden-Format) am ersten Tag der Monat. |
Jedes Quartal | Folgendes ist äquivalent:
|
Wird am ersten Tag des Quartals um 00:00 Uhr (24-Stunden-Format) ausgeführt, wenn ein standardmäßiger vierteljährlicher Zeitplan verwendet wird: 1. Januar, 1. April, 1. Juli und 1. Oktober. |
Jedes Jahr | Folgendes ist äquivalent:
|
Wird um 00:00 Uhr (00:00 im 24-Stunden-Format) am ersten Tag der im ersten Monat des Jahres (1. Januar). |
Zeitzone
Sie können die Zeitzone für die Auswertung des Zeitplans entweder im
Google Cloud Console: Wählen Sie auf der Seite Job erstellen eine Zeitzone aus.
der Liste) oder über die gcloud
--time-zone
, wenn Sie
zum Erstellen des Jobs.
Der Wert dieses Felds muss der Zeitzonenkürzel sein, das in der tz-Datenbank verwendet wird.
Die Standardzeitzone ist UTC
.
In einigen Zeitzonen kann die Sommerzeit dazu führen, dass Jobs ausgeführt oder nicht ausgeführt werden unerwartet. Dies liegt daran, dass Cloud Scheduler zur tatsächlich verstrichenen Zeit ausgeführt wird. In Fällen, in denen eine Zeit zweimal auftreten kann (z. B. wenn die Uhren rückwärts springen) und Ihr Job zu diesem Zeitpunkt geplant ist, kann es bei Ihrem geplanten Job zu Ausführungsanomalien kommen.
Wenn für Ihren Job ein sehr spezifischer Rhythmus erforderlich ist, können Sie eine Zeitzone auswählen, die die Sommerzeit nicht berücksichtigt. Insbesondere Für Cloud Scheduler wird UTC empfohlen, um das Problem zu vermeiden vollständig.