Wiederholungsparameter für eine Aufgabe festlegen

Wenn Sie eine Aufgabe erstellen, können Sie mit der Methode projects.locations.queues.tasks.create die maximale Anzahl von Wiederholungsversuchen für eine fehlgeschlagene Aufgabe angeben, ein Zeitlimit für Wiederholungsversuche festlegen und das Intervall zwischen den Versuchen steuern. Nachdem eine Aufgabe erfolgreich ausgeführt wurde, wird sie aus der Warteschlange entfernt. In allen Fällen gilt auch das Limit für die maximale Aufbewahrungsdauer von Aufgaben.

Diese Konfiguration für Wiederholungsversuche auf Aufgabenebene überschreibt die Konfiguration für Wiederholungsversuche auf Warteschlangenebene für die Aufgabe.

Wiederholungsversuche beim Erstellen einer Aufgabe konfigurieren

Im folgenden Beispiel wird gezeigt, wie Sie beim Erstellen einer HTTP-Zielaufgabe durch Senden einer direkten Anfrage an die Cloud Tasks API Wiederholungsparameter festlegen. Sie können dieselben Wiederholungsparameter verwenden, wenn Sie eine App Engine-Aufgabe erstellen. Weitere Informationen zu den Parametern finden Sie in den RetryConfig-Einstellungen für die Task-Ressource.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Erforderlich. Die Projekt-ID des Google Cloud -Projekts, in dem die Aufgabe erstellt wird.
  • REGION: Erforderlich. Die Region, in der die Warteschlange bereitgestellt wird, z. B. us-central1.
  • QUEUE_ID: Erforderlich. Die ID der Warteschlange, der die Aufgabe hinzugefügt wird.
  • URL: Erforderlich. Die vollständig qualifizierte URL, an die die Anfrage gesendet wird. Dieser String muss mit http:// oder https:// beginnen, z. B. https://www.example.com. .
  • SERVICE_ACCOUNT_EMAIL: Optional. Die E-Mail-Adresse des Dienstkontos, mit der ein Autorisierungstoken generiert wird, das in der Anfrage enthalten ist, die beim Ausführen der Aufgabe an das Ziel gesendet wird. Das Dienstkonto muss sich im selben Projekt wie die Warteschlange befinden. Der Aufrufer muss die Berechtigung iam.serviceAccounts.actAs für das Dienstkonto haben.

    Wenn Sie ein OAuth2-Zugriffstoken anstelle eines OpenID Connect-Tokens generieren möchten, ersetzen Sie das Feld oidcToken durch oauthToken, um die E‑Mail-Adresse des Dienstkontos anzugeben.

  • MAX_ATTEMPTS: optional. Die maximale Anzahl von Versuchen für eine Aufgabe, einschließlich des ersten. Wenn Sie unbegrenzte Wiederholungsversuche zulassen möchten, legen Sie diesen Wert auf -1 fest. MAX_RETRY_DURATION gilt weiterhin, auch wenn MAX_ATTEMPTS erreicht oder auf -1 festgelegt ist.
  • MAX_RETRY_DURATION: optional. Die maximale Zeitspanne für das Wiederholen einer fehlgeschlagenen Aufgabe, gemessen ab dem ersten Versuch, die Aufgabe auszuführen. Der Wert muss ein String sein, der mit "s" endet, zum Beispiel 5s. Wenn Sie eine unbegrenzte Dauer angeben möchten, legen Sie diesen Wert auf 0s fest. MAX_ATTEMPTS gilt weiterhin, auch wenn MAX_RETRY_DURATION erreicht oder auf 0s festgelegt ist.
  • MIN_INTERVAL: optional. Die Mindestwartezeit zwischen Wiederholungsversuchen. Der Wert muss ein String sein, der mit „s“ endet, z. B. 5s.
  • MAX_INTERVAL: optional. Die maximale Wartezeit zwischen Wiederholungsversuchen. Der Wert muss ein String sein, der mit „s“ endet, z. B. 5s.
  • MAX_DOUBLINGS: optional. Die maximale Anzahl der Verdopplungen des Intervalls zwischen Wiederholungsversuchen fehlgeschlagener Aufgaben, bevor die Erhöhung konstant wird. Das Wiederholungsintervall einer Aufgabe beginnt bei MIN_INTERVAL, verdoppelt sich dann MAX_DOUBLINGS-mal, steigt dann linear an und wird schließlich bis zu MAX_ATTEMPTS-mal in Intervallen von MAX_INTERVAL wiederholt.

    Wenn MIN_INTERVAL beispielsweise 10s, MAX_INTERVAL 300s und MAX_DOUBLINGS 3 ist, verdoppelt sich das Wiederholungsintervall 3 Mal, steigt linear um 2^3 * 10 s und wird dann in Intervallen von MAX_INTERVAL wiederholt, bis die Aufgabe MAX_ATTEMPTS Mal versucht wurde: 10 s, 20 s, 40 s, 80 s, 160 s, 240 s, 300 s, 300 s usw.

  • SCHEDULE_TIME: optional. Die Zeit, zu der die Aufgabe ausgeführt werden soll, im RFC 3339-Format, z. B. 2026-10-02T15:01:23Z. Wenn die Zeit nicht festgelegt ist oder in der Vergangenheit liegt, wird sie von Cloud Tasks auf die aktuelle Zeit gesetzt.

JSON-Text der Anfrage:

{
  "task": {
    "httpRequest": {
      "url": "URL",
      "httpMethod": "POST",
      "oidcToken": {
        "serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
      }
    },
    "retryConfig": {
      "maxAttempts": MAX_ATTEMPTS,
      "maxRetryDuration": "MAX_RETRY_DURATION",
      "minBackoff": "MIN_INTERVAL",
      "maxBackoff": "MAX_INTERVAL",
      "maxDoublings": MAX_DOUBLINGS
    },
    "scheduleTime": "SCHEDULE_TIME"
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Bei Erfolg enthält der Antworttext die neu erstellte Instanz der Task-Ressource.

{
  "name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
  "httpRequest": {
    "url": "URL",
    "httpMethod": "POST",
    "headers": {
      "User-Agent": "Google-Cloud-Tasks"
    },
    "oidcToken": {
      "serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL",
      "audience": "URL"
    }
  },
  "retryConfig": {
    "maxAttempts": MAX_ATTEMPTS,
    "maxRetryDuration": "MAX_RETRY_DURATION",
    "minBackoff": "MIN_INTERVAL",
    "maxBackoff": "MAX_INTERVAL",
    "maxDoublings": MAX_DOUBLINGS
  },
  "scheduleTime": "SCHEDULE_TIME",
  "createTime": "2026-04-30T19:11:50Z",
  "dispatchDeadline": "600s",
  "view": "BASIC"
}

Nächste Schritte