Definir parâmetros de repetição para uma tarefa

Ao criar uma tarefa, é possível especificar o número máximo de vezes para repetir uma tarefa com falha, definir um limite de tempo para tentar novamente e controlar o intervalo entre as tentativas usando o projects.locations.queues.tasks.create método. Quando uma tarefa é executada, ela é removida da fila. Em todos os casos, o limite máximo de retenção de tarefas também se aplica.

Essa configuração de repetição no nível da tarefa substitui a configuração de repetição no nível da fila para a tarefa.

Configurar repetições ao criar uma tarefa

O exemplo a seguir demonstra a definição de parâmetros de repetição ao criar uma tarefa de destino HTTP enviando uma solicitação direta à API Cloud Tasks. É possível usar os mesmos parâmetros de repetição ao criar uma tarefa do App Engine. Para mais detalhes sobre os parâmetros, consulte as RetryConfig configurações do Task recurso.

Antes de usar os dados da solicitação abaixo, faça estas substituições:

  • PROJECT_ID: obrigatório. O ID do Google Cloud projeto em que a tarefa será criada.
  • REGION: obrigatório. A região em que a fila está implantada, por exemplo, us-central1.
  • QUEUE_ID: obrigatório. O ID da fila em que a tarefa será adicionada.
  • URL: obrigatório. O URL totalmente qualificado para o qual a solicitação será enviada. Essa string precisa começar com http:// ou https://, por exemplo: https://www.example.com.
  • SERVICE_ACCOUNT_EMAIL: opcional. O e-mail da conta de serviço usado para gerar um token de autorização incluído em a solicitação enviada ao destino ao executar a tarefa. A conta de serviço precisa estar no mesmo projeto que a fila. O autor da chamada precisa ter a iam.serviceAccounts.actAs permissão para a conta de serviço.

    Para gerar um token de acesso do OAuth2 em vez de um token do OpenID Connect, substitua o oidcToken campo por oauthToken para especificar o e-mail da conta de serviço.

  • MAX_ATTEMPTS: opcional. O número máximo de tentativas para uma tarefa, incluindo a primeira. Para permitir repetições ilimitadas, defina esse valor como -1. MAX_RETRY_DURATION ainda se aplica mesmo que MAX_ATTEMPTS seja atingido ou definido como -1.
  • MAX_RETRY_DURATION: opcional. O tempo máximo para repetir uma tarefa com falha medida a partir da primeira tentativa da tarefa. O valor precisa ser uma string que termine em "s", como 5s. Para especificar uma duração ilimitada, defina esse valor como 0s. MAX_ATTEMPTS ainda se aplica mesmo que MAX_RETRY_DURATION seja atingido ou definido como 0s.
  • MIN_INTERVAL: opcional. O tempo mínimo de espera entre as tentativas. O valor precisa ser uma string que termine em "s", como 5s.
  • MAX_INTERVAL: opcional. O tempo máximo de espera entre as tentativas. O valor precisa ser uma string que termine em "s", como 5s.
  • MAX_DOUBLINGS: opcional. O número máximo de vezes que o intervalo entre novas tentativas de tarefas com falhas será dobrado antes que o aumento se torne constante. O intervalo de repetição de uma tarefa começa em MIN_INTERVAL, depois duplica os tempos MAX_DOUBLINGS, aumenta linearmente e, finalmente tenta novamente em intervalos de MAX_INTERVAL até MAX_ATTEMPTS vezes.

    Por exemplo, se MIN_INTERVAL for 10s, MAX_INTERVAL for 300s, e MAX_DOUBLINGS for 3, o intervalo de repetição será duplicado 3 vezes, aumentará linearmente em 2^3 * 10s e, em seguida, tentará novamente em intervalos de MAX_INTERVAL até que a tarefa tenha sido tentada MAX_ATTEMPTS vezes: 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s e assim por diante.

  • SCHEDULE_TIME: opcional. O horário em que a tarefa está programada para ser tentada, no formato RFC 3339, por exemplo, 2026-10-02T15:01:23Z. Se o horário não estiver definido ou estiver no passado, o Cloud Tasks o definirá como o horário atual.

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

Se a solicitação for bem-sucedida, o corpo da resposta incluirá a instância recém-criada de o Task recurso.

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

A seguir