Ao criar uma tarefa, você pode especificar o número máximo de vezes para repetir uma tarefa com falha, definir um limite de tempo para novas tentativas e controlar o intervalo entre elas usando o método projects.locations.queues.tasks.create. 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 como definir 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 parâmetros, consulte as
configurações de RetryConfig para o
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 tentativas ilimitadas, defina como-1.MAX_RETRY_DURATIONainda se aplica mesmo queMAX_ATTEMPTSseja atingido ou definido como-1.MAX_RETRY_DURATION: opcional. O tempo máximo para repetir uma tarefa com falha, medido a partir da primeira tentativa da tarefa. 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 repetições das tentativas. O valor precisa ser uma string que termine em "s", como5s.MAX_INTERVAL: opcional. O tempo máximo de espera entre as repetições das 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 falhas será dobrado antes que o aumento se torne constante. O intervalo de repetição de uma tarefa começa emMIN_INTERVAL, depois duplicaMAX_DOUBLINGSvezes, aumenta linearmente e, finalmente, 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"
}