Format und Zeitzone des Cronjobs

Cronjobs werden in wiederkehrenden Intervallen geplant, die mithilfe eines formatbasierten am unix-cron. Sie können einen Zeitplan definieren, sodass Ihr Job mehrmals am Tag oder am an bestimmten Tagen und Monaten. 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. Dabei handelt es sich um Gruppe von fünf Feldern in einer Zeile, die 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 SO bis SA; oder 7 für Sonntag)
  • Minute: gibt an, wie weit nach der Spitzen der Stunde Ihr Job ausgeführt wird, in Minuten. Wenn für die Minute beispielsweise 0 festgelegt ist, wird der Job zum folgenden Zeitpunkt ausgeführt: am häufigsten in der vollen Stunde angezeigt wird, weil 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 angezeigt werden in das Feld minute ein. Mitternacht ist 0 und Mittag ist 12. Beispiel: die Stunde auf 0 eingestellt ist, dann wird der Job um Mitternacht ausgeführt (da ist 0 Stunden nach Mitternacht).

  • Tag des Monats: gibt das Kalenderdatum des Monats an. Beispiel: 1 für den ersten Tag des Monats. Cloud Scheduler tut Folgendes nicht: unterstützen L für den letzten Tag des Monats.

  • Monat: gibt den Monat an. Geben Sie die Monatsnummer oder die ersten drei an. des Monatsnamens in Großbuchstaben. Beispiel: 1 für Januar oder JAN.

  • Wochentag: gibt den Wochentag an. Montag ist am Dienstag 1 ist 2 und so weiter. Entweder 0 oder 7 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 als einschließender OR mit dem day of the month bewertet ein, es sei denn, eines dieser Felder ist vom Sternchen (*). Wenn der Tag des Monats beispielsweise auf 1 festgelegt ist und Wenn der Wochentag auf SAT festgelegt ist, wird der Job am ersten Tag des und an jedem Samstag im Monat, auch wenn am ersten Tag der Monat kein Samstag ist. Wenn der Wochentag uneingeschränkt ist (set auf *), wird der Job nur am ersten Tag des Monats ausgeführt.

Übereinstimmung mit allen Werten

Verwenden Sie das Sternchen *, um alle Werte in einem Feld abzugleichen. Wenn ein Feld auf das Sternchen gesetzt wird, stimmt das Feld mit allen gültigen Werten für dieses Feld überein, wenn das alle anderen Feldbedingungen erfüllt sind. Das Setzen eines Feldes auf das Sternchen wird manchmal auch als uneingeschränktes Belassen bezeichnet, da dies auf einen bestimmten Wert beschränkt.

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

Um einen Wertebereich abzugleichen, geben Sie Start- und Stoppwerte getrennt durch ein Bindestrich (-) Der Bereich darf keine Leerzeichen enthalten. Die Bereiche sind inklusive. Die 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

Abgleich mit einer Liste

Listen können jeden gültigen Wert für das Feld enthalten, einschließlich Bereiche. Geben Sie die Werte durch Kommas getrennt an (,). Fügen Sie im Feld Liste.

Beispiele:

  • 0 0,12 * * *: Der Job wird um Mitternacht und Mittag ausgeführt.
  • 0-5,30-35 * * * *: Der Job wird in jeder der ersten fünf Minuten jedes eine halbe Stunde (zu Beginn der vollen Stunde und halb nach der vollen Stunde).

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 Verwendung einer Schrittfunktion (oder Schritt Wert oder Preisausdruck). Geben Sie dazu den Bereich an, Schrägstrich (/) und die Geschwindigkeit, mit der Sie den Bereich überspringen möchten.

Mit dem Sternchen (*) können Sie den Bereich aller Werte für die ein. 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 entspricht also der Verwendung einer Schrittfunktion.

Beispielbereiche, die Schrittfunktionen verwenden:

  • */2: Dies ist eine gültige Schrittfunktion für jedes Feld. Für das Minuten-Feld entspricht 0, 2, 4, ... , 58. Für die Stunde entspricht er 0, 2, 4, ... , 22. Für am Tag des Monats entspricht sie 1, 3, 5, ... , 31 (für einen Monat mit 31 Tage). Für den Monat entspricht er 1, 3, 5, ... , 11. Für den Wochentag entspricht 0, 2, 4, 6.

  • 0-12/2: Dies ist eine gültige Schrittfunktion für die Felder „Minute“ und „Stunde“. Es entspricht 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 Cronjob-Format Erklärung
Jede Minute * * * * * Minutengenaue Ausführung. Beispiel: 9:00 AM, 9:01 AM, :02 AM und so weiter.
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 Montag bis Freitag
(Mo–Fr)
Folgendes ist äquivalent:
  • 0 0 * * 1-5
  • 0 0 * * MON-FRI
Wird montags, dienstags und um 00:00 Uhr (24-Stunden-Format) ausgeführt. mittwochs, donnerstags und freitags.
Jede Woche Folgendes ist äquivalent:
  • 0 0 * * 0
  • 0 0 * * 7
  • 0 0 * * SUN
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:
  • 0 0 1 1,4,7,10 *
  • 0 0 1 JAN,APR,JUL,OCT *
Wird um 00:00 Uhr (00:00 im 24-Stunden-Format) am ersten Tag der Quartal, für einen standardmäßigen vierteljährlichen Zeitplan: 1. Januar, 1. April, Juli 1. und 1. Oktober.
Jedes Jahr Folgendes ist äquivalent:
  • 0 0 1 1 *
  • 0 0 1 JAN *
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 Feldes muss die Zeitzonenabkürzung sein, die in den tz-Datenbank. Die Standardzeitzone ist UTC.

In einigen Zeitzonen kann die Sommerzeit dazu führen, dass Jobs ausgeführt oder nicht ausgeführt werden unerwartet. Das liegt daran, dass Cloud Scheduler im Echtzeit-Dienst ausgeführt wird. . In Fällen, in denen eine Zeit doppelt vorkommen kann, z. B. wenn die Uhr und Ihr Job zu diesem Zeitpunkt geplant ist, kann er Ausführungsanomalien beobachten.

Wenn für Ihren Job ein sehr bestimmter Rhythmus erforderlich ist, Auswählen einer Zeitzone, bei der die Sommerzeit nicht berücksichtigt wird Insbesondere Für Cloud Scheduler wird UTC empfohlen, um das Problem zu vermeiden vollständig.