Ao criar uma tarefa, é possível especificar o número máximo de vezes para tentar novamente uma
tarefa com falha, definir um limite de tempo para as tentativas e controlar o intervalo
entre elas usando o método
projects.locations.queues.tasks.create
(link em inglês). Depois que 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 nova tentativa no nível da tarefa substitui a configuração de nova tentativa no nível da fila para a tarefa.
Configurar novas tentativas ao criar uma tarefa
O exemplo a seguir demonstra a definição de parâmetros de nova tentativa ao criar uma
tarefa de destino HTTP enviando uma solicitação direta à API Cloud Tasks. É possível
usar os mesmos parâmetros de nova tentativa ao
criar uma tarefa do App Engine. Para mais detalhes sobre os parâmetros, consulte as
configurações de RetryConfig do
recurso Task.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID: obrigatório. O ID do projeto do projeto Google Cloud em que a tarefa será criada.REGION: obrigatório. A região em que a fila é implantada, por exemplo,us-central1.QUEUE_ID: obrigatório. O ID da fila a que a tarefa será adicionada.URL: obrigatório. O URL totalmente qualificado para onde a solicitação será enviada. Essa string precisa começar comhttp://ouhttps://. 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 na 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 permissãoiam.serviceAccounts.actAspara a conta de serviço.Para gerar um token de acesso do OAuth2 em vez de um token do OpenID Connect, substitua o campo
oidcTokenporoauthTokenpara 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 novas tentativas ilimitadas, defina isso como-1.MAX_RETRY_DURATIONainda se aplica mesmo queMAX_ATTEMPTSseja atingido ou definido como-1.MAX_RETRY_DURATION: opcional. O tempo máximo para tentar de novo uma tarefa com falha, medido desde a primeira tentativa. O valor precisa ser uma string que termine em "s", como5s. Para especificar uma duração ilimitada, defina como0s.MAX_ATTEMPTSainda se aplica mesmo queMAX_RETRY_DURATIONseja atingido ou definido como0s.MIN_INTERVAL: opcional. O tempo mínimo de espera entre as tentativas. O valor precisa ser uma string que termine em "s", como5s.MAX_INTERVAL: opcional. O tempo máximo de espera entre novas tentativas. O valor precisa ser uma string que termine em "s", como5s.MAX_DOUBLINGS: opcional. O número máximo de vezes que o intervalo entre novas tentativas de tarefas com falha será dobrado antes que o aumento se torne constante. O intervalo de novas tentativas de uma tarefa começa emMIN_INTERVAL, depois dobraMAX_DOUBLINGSvezes, aumenta linearmente e, por fim, tenta novamente em intervalos deMAX_INTERVALatéMAX_ATTEMPTSvezes.Por exemplo, se
MIN_INTERVALfor10s,MAX_INTERVALfor300seMAX_DOUBLINGSfor3, o intervalo de repetição vai dobrar3vezes, aumentar linearmente em 2^3 * 10s e tentar novamente em intervalos deMAX_INTERVALaté que a tarefa seja tentadaMAX_ATTEMPTSvezes: 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 executada, no formato RFC 3339. Por exemplo,2026-10-02T15:01:23Z. Se o horário não estiver definido ou for no passado, o Cloud Tasks vai definir 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 vai conter a instância recém-criada do recurso 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"
}
A seguir
- Criar filas do Cloud Tasks
- Criar tarefas do Cloud Tasks
- Configurar roteamento, limites e novas tentativas de fila
- Gerenciar filas e tarefas