Wiederholungsparameter für eine Aufgabe festlegen

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

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

Wiederholungen beim Erstellen einer Aufgabe konfigurieren

Das folgende Beispiel zeigt, wie Sie Wiederholungsparameter festlegen, wenn Sie eine HTTP-Zielaufgabe erstellen, indem Sie eine direkte Anfrage an die Cloud Tasks API senden. Sie können dieselben Wiederholungsparameter verwenden, wenn Sie eine App Engine-Aufgabe erstellen. Weitere Parameterdetails 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 iam.serviceAccounts.actAs Berechtigung für das Dienstkonto haben.

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

  • MAX_ATTEMPTS: Optional. Die maximale Anzahl der Versuche für eine Aufgabe, einschließlich des ersten Versuchs. Wenn Sie unbegrenzte Wiederholungen zulassen möchten, legen Sie diesen Wert auf -1 fest. MAX_RETRY_DURATION gilt auch dann, wenn MAX_ATTEMPTS erreicht oder auf -1 festgelegt ist.
  • MAX_RETRY_DURATION: Optional. Die Höchstdauer für die Wiederholung einer fehlgeschlagenen Aufgabe, die ab dem ersten Versuch der Aufgabe gemessen wird. Der Wert muss ein String sein, der mit „s“ endet, z. B. 5s. Wenn Sie eine unbegrenzte Dauer angeben möchten, legen Sie diesen Wert auf 0s fest. MAX_ATTEMPTS gilt auch dann, wenn MAX_RETRY_DURATION erreicht oder auf 0s festgelegt ist.
  • MIN_INTERVAL: Optional. Die Mindestdauer der Wartezeit zwischen Wiederholungsversuchen. Der Wert muss ein String sein, der mit "s" endet, z. B. 5s.
  • MAX_INTERVAL: Optional. Die Höchstdauer der Wartezeit zwischen Wiederholungsversuchen. Der Wert muss ein String sein, der mit "s" endet, z. B. 5s.
  • MAX_DOUBLINGS: Optional. Die maximale Häufigkeit, mit der das Intervall zwischen fehlgeschlagenen Aufgabenwiederholungen verdoppelt wird, 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 in Intervallen von MAX_INTERVAL bis zu MAX_ATTEMPTS Mal wiederholt.

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

  • SCHEDULE_TIME: Optional. Die Zeit, zu der die Aufgabe versucht 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 festgelegt.

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 von 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