Impostare i parametri di ripetizione per un'attività

Quando crei un'attività, puoi specificare il numero massimo di tentativi per riprovare un'attività non riuscita, impostare un limite di tempo per i tentativi e controllare l'intervallo tra i tentativi utilizzando il projects.locations.queues.tasks.create metodo. Una volta eseguita correttamente, un'attività viene rimossa dalla coda. In tutti i casi, si applica anche il limite massimo di conservazione 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 come impostare i parametri dei tentativi durante la creazione di un'attività di destinazione HTTP inviando una richiesta diretta all'API Cloud Tasks. Puoi utilizzare gli stessi parametri dei tentativi quando crei un'attività App Engine. Per ulteriori dettagli sui parametri, consulta le RetryConfig impostazioni per la Task risorsa.

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

  • PROJECT_ID: obbligatorio. L'ID progetto del progetto in cui verrà creata l'attività. Google Cloud
  • REGION: obbligatorio. La regione in cui è stato 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'indirizzo email del account di servizio utilizzato per generare un token di autorizzazione incluso in la richiesta inviata alla destinazione durante l'esecuzione dell'attività. Il account di servizio deve trovarsi nello stesso progetto della coda. Il chiamante deve disporre dell' iam.serviceAccounts.actAs autorizzazione per il account di servizio.

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

  • MAX_ATTEMPTS: facoltativo. Il numero massimo di tentativi per un'attività, incluso il primo. Per consentire un numero illimitato di tentativi, imposta questo valore su -1. MAX_RETRY_DURATION si applica anche se MAX_ATTEMPTS viene raggiunto o se è impostato su -1.
  • MAX_RETRY_DURATION: facoltativo. La quantità massima di tempo per riprovare un'attività non riuscita, misurata dal primo tentativo di esecuzione dell'attività. Il valore deve essere una stringa che termina con "s", ad esempio 5s. Per specificare un durata illimitata, imposta questo valore su 0s. MAX_ATTEMPTS si applica anche se viene raggiunto MAX_RETRY_DURATION o se è impostato su 0s.
  • MIN_INTERVAL: facoltativo. La quantità minima di tempo da attendere tra i tentativi. Il valore deve essere una stringa che termina con "s", ad esempio 5s.
  • MAX_INTERVAL: facoltativo. La quantità massima di tempo da attendere 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 esecuzione di un'attività non riuscita verrà raddoppiato prima che l' aumento diventi costante. L'intervallo tra i tentativi di un'attività inizia con MIN_INTERVAL, quindi raddoppia MAX_DOUBLINGS volte, poi aumenta in modo lineare e infine i tentativi vengono eseguiti 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 tra i tentativi raddoppierà 3 volte, aumenterà linearmente di 2^3 * 10s e poi i tentativi verranno eseguiti a intervalli di MAX_INTERVAL fino a quando l'attività non avrà raggiunto MAX_ATTEMPTS tentativi: 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s e così via.

  • SCHEDULE_TIME: facoltativo. L'ora in cui è pianificato il tentativo di esecuzione dell'attività, nel formato RFC 3339, ad esempio, 2026-10-02T15:01:23Z. Se l'ora non è impostata o è nel passato, Cloud Tasks la imposta 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