Impostare i parametri di ripetizione per un'attività

Quando crei un'attività, puoi specificare il numero massimo di tentativi di ripetizione di un'attività non riuscita, impostare un limite di tempo per i tentativi e controllare l'intervallo tra i tentativi utilizzando il metodo projects.locations.queues.tasks.create. Una volta eseguita correttamente, un'attività viene rimossa dalla coda. In tutti i casi, si applica anche il limite di conservazione massima delle attività.

Questa configurazione dei tentativi a livello di attività sostituisce la configurazione dei tentativi a livello di coda per l'attività.

Configurare i tentativi durante la creazione di un'attività

L'esempio seguente mostra l'impostazione dei parametri di ripetizione dei tentativi durante la creazione di un'attività di destinazione HTTP inviando una richiesta diretta all'API Cloud Tasks. Puoi utilizzare gli stessi parametri di ripetizione dei tentativi quando crei un'attività App Engine. Per maggiori dettagli sui parametri, consulta le impostazioni RetryConfig per la risorsa Task.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: obbligatorio. L'ID progetto del progetto Google Cloud in cui verrà creato il task.
  • REGION: obbligatorio. La regione in cui viene eseguito il deployment della coda, ad esempio us-central1.
  • QUEUE_ID: obbligatorio. L'ID della coda a cui verrà aggiunta l'attività.
  • URL: obbligatorio. L'URL completo a cui verrà inviata la richiesta. Questa stringa deve iniziare con http:// o https://, ad esempio: https://www.example.com.
  • SERVICE_ACCOUNT_EMAIL: facoltativo. L'email del account di servizio utilizzata per generare un token di autorizzazione incluso nella richiesta inviata alla destinazione durante l'esecuzione dell'attività. L'account di servizio deve trovarsi nello stesso progetto della coda. Il chiamante deve disporre dell'autorizzazione iam.serviceAccounts.actAs per il account di servizio.

    Per generare un token di accesso OAuth2 anziché un token OpenID Connect, sostituisci il campo oidcToken con oauthToken per specificare l'email del account di servizio.

  • MAX_ATTEMPTS: facoltativo. Il numero massimo di tentativi per un'attività, incluso il primo. Per consentire tentativi illimitati, imposta questo valore su -1. MAX_RETRY_DURATION si applica comunque anche se MAX_ATTEMPTS viene raggiunto o impostato su -1.
  • MAX_RETRY_DURATION: facoltativo. Il tempo massimo per riprovare un'attività non riuscita, misurato dal primo tentativo di esecuzione dell'attività. Il valore deve essere una stringa che termina con "s", ad esempio 5s. Per specificare una durata illimitata, imposta questo valore su 0s. MAX_ATTEMPTS continua ad applicarsi anche se MAX_RETRY_DURATION viene raggiunto o impostato su 0s.
  • MIN_INTERVAL: facoltativo. La quantità minima di tempo di attesa tra i tentativi. Il valore deve essere una stringa che termina con "s," ad esempio 5s.
  • MAX_INTERVAL: facoltativo. La quantità massima di tempo di attesa tra i tentativi. Il valore deve essere una stringa che termina con "s," ad esempio 5s.
  • MAX_DOUBLINGS: facoltativo. Il numero massimo di volte in cui l'intervallo tra i tentativi di ripetizione di un'attività non riuscita viene raddoppiato prima che l'aumento diventi costante. L'intervallo di nuovi tentativi di un'attività inizia a MIN_INTERVAL, poi raddoppia MAX_DOUBLINGS volte, quindi aumenta linearmente e infine ritenta a intervalli di MAX_INTERVAL fino a MAX_ATTEMPTS volte.

    Ad esempio, se MIN_INTERVAL è 10s, MAX_INTERVAL è 300s e MAX_DOUBLINGS è 3, l'intervallo di nuovi tentativi raddoppierà 3 volte, aumenterà linearmente di 2^3 * 10 secondi e poi riproverà a intervalli di MAX_INTERVAL finché l'attività non sarà stata tentata MAX_ATTEMPTS volte: 10 secondi, 20 secondi, 40 secondi, 80 secondi, 160 secondi, 240 secondi, 300 secondi, 300 secondi e così via.

  • SCHEDULE_TIME: facoltativo. L'ora in cui è pianificata l'esecuzione dell'attività, in formato RFC 3339, ad esempio 2026-10-02T15:01:23Z. Se l'ora non è impostata o è nel passato, Cloud Tasks la imposterà sull'ora corrente.

Corpo JSON della richiesta:

{
  "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"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene l'istanza appena creata della risorsa Task.

{
  "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"
}

Passaggi successivi