Jobs wiederholen

Wenn ein Cloud Scheduler-Job keine Bestätigung von seinem Handler erhält, gilt er standardmäßig als fehlgeschlagen und wird gemäß dem von Ihnen konfigurierten exponentiellen Backoff wiederholt. Sie können dieses Wiederholungsverhalten beim Erstellen oder Aktualisieren eines Cloud Scheduler-Jobs auf folgende Weise festlegen:

Wiederholungseinstellungen

In den folgenden Tabellen werden die Wiederholungseinstellungen beschrieben, die Sie konfigurieren können.

Maximale Anzahl an Wiederholungsversuchen

Die Anzahl der Versuche, die das System unternimmt, um einen Job mit dem von maxDoublings beschriebenen exponentiellen Backoff-Verfahren auszuführen.

Beschreibung

Wenn retryCount auf eine Zahl ungleich null festgelegt ist, wiederholt Cloud Scheduler den fehlgeschlagenen Job mit exponentiellem Backoff retryCount Mal, bis der Job erfolgreich ist oder die Anzahl der Wiederholungen erschöpft ist. Die nächste geplante Ausführungszeit wird möglicherweise übersprungen, wenn die Wiederholungsversuche bis zu diesem Zeitpunkt andauern.

Wenn retryCount = 0 (und maxRetryDuration = 0), wird ein Jobversuch nicht wiederholt, wenn er fehlschlägt. Stattdessen wartet Cloud Scheduler auf den nächsten geplanten Ausführungszeitpunkt.

Werte über 5 und negative Werte sind nicht zulässig.

Standard Der Standardwert ist 0.
Konsolenlabel Maximale Wiederholungsversuche
Befehlszeilen-Flag --max-retry-attempts
API-Feld retryCount

Maximale Wiederholungsdauer

Das Zeitlimit für die Wiederholung eines fehlgeschlagenen Jobs, gemessen ab dem Zeitpunkt des ersten Ausführungsversuchs. Wenn retryCount angegeben ist, wird der Job wiederholt, bis beide Limits erreicht sind.

Beschreibung

Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, die mit „s“ endet, z. B. „3,5s“.

Eine Dauer von 0 bedeutet, dass die Wiederholungsdauer unbegrenzt ist. Wenn retryCount jedoch auch 0 ist, wird ein Jobversuch nicht wiederholt, wenn er fehlschlägt.

Standard Der Standardwert ist 0 Sekunden.
Konsolenlabel Maximale Wiederholungsdauer
Befehlszeilen-Flag --max-retry-duration
API-Feld maxRetryDuration

Minimale Backoff-Dauer

Die Mindestwartezeit, bevor die Ausführung eines Jobs nach einem Fehlversuch wiederholt wird.

Beschreibung

Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, die mit „s“ endet, z. B. „3,5s“.

Standard Standardwert: 5 Sekunden.
Konsolenlabel Minimale Backoff-Dauer
Befehlszeilen-Flag --min-backoff
API-Feld minBackoffDuration

Maximale Backoff-Dauer

Die maximale Wartezeit, bevor die Ausführung eines Jobs nach einem Fehlversuch wiederholt wird.

Beschreibung

Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, die mit „s“ endet, z. B. „3,5s“.

Standard Der Standardwert beträgt 3.600 Sekunden (1 Stunde).
Konsolenlabel Maximale Backoff-Dauer
Befehlszeilen-Flag --max-backoff
API-Feld maxBackoffDuration

Maximale Anzahl Wiederholungen

Die maximale Häufigkeit, mit der das Intervall zwischen fehlgeschlagenen Jobwiederholungen verdoppelt wird, bevor die Erhöhung konstant wird.

Beschreibung Die Zeit zwischen den Wiederholungen wird maxDoublings-mal verdoppelt.

Das Wiederholungsintervall eines Jobs beginnt bei minBackoffDuration, verdoppelt sich dann maxDoublings-mal, steigt dann linear an und wird schließlich bis zu retryCount-mal in Intervallen von maxBackoffDuration wiederholt. Beispiel:

Wenn minBackoffDuration = 10 s, maxBackoffDuration = 300 s und maxDoublings = 3 gilt:

  1. Der Job wird zuerst nach 10 Sekunden noch einmal versucht.
  2. Das Wiederholungsintervall wird dreimal verdoppelt.
  3. Das Wiederholungsintervall erhöht sich dann linear um 2^3 * 10 s.
  4. Falls zutreffend, wird der Job in Intervallen von maxBackoffDuration wiederholt, bis er retryCount-mal ausgeführt wurde (maximal 5-mal).

Die Anfragen werden also nach 10 Sekunden, 20 Sekunden, 40 Sekunden, 80 Sekunden und 160 Sekunden wiederholt.

Wenn minBackoffDuration 10 Sekunden, maxBackoffDuration 120 Sekunden und maxDoublings 2 ist:

  1. Der Job wird zuerst nach 10 Sekunden noch einmal versucht.
  2. Das Wiederholungsintervall wird zweimal verdoppelt.
  3. Das Wiederholungsintervall erhöht sich dann linear um 2^3 * 10 s.
  4. Falls zutreffend, wird der Job in Intervallen von maxBackoffDuration wiederholt, bis er retryCount-mal ausgeführt wurde (maximal 5-mal).

Die Anfragen werden also nach 10 Sekunden, 20 Sekunden, 40 Sekunden, 120 Sekunden und 120 Sekunden wiederholt.

Standard Der Standardwert ist 5.
Konsolenlabel Maximale Anzahl Wiederholungen
Befehlszeilen-Flag --max-doublings
API-Feld maxDoublings

Beispiele für Wiederholungsversuche

Die folgenden Beispiele veranschaulichen das Wiederholungsverhalten, wenn ein Cloud Scheduler-Job nicht erfolgreich abgeschlossen wird.

Wenn weder retryCount noch maxRetryDuration festgelegt sind

Beide Einstellungen sind standardmäßig auf 0 gesetzt und der Job wird nicht wiederholt.

Cloud Scheduler versucht, den Job zum nächsten geplanten Ausführungszeitpunkt auszuführen.

Wenn sowohl retryCount als auch maxRetryDuration festgelegt sind

Der Job wird mindestens retryCount-mal wiederholt, bis maxRetryDuration erreicht ist.

Der Job kann häufiger wiederholt werden als retryCount.

Wenn retryCount festgelegt ist und maxRetryDuration nicht

Die Einstellung maxRetryDuration ist standardmäßig auf 0 gesetzt und der Job wird genau retryCount Mal wiederholt.

Wenn retryCount nicht festgelegt und maxRetryDuration festgelegt ist

Der Job wird beliebig oft wiederholt (bis zu maximal fünfmal) oder bis maxRetryDuration erreicht ist.