Cuando creas una tarea, puedes especificar la cantidad máxima de veces que se reintentará una tarea fallida, establecer un límite de tiempo para los intentos de reintento y controlar el intervalo entre los intentos con el método projects.locations.queues.tasks.create. Una vez que se ejecuta correctamente una tarea, se quita de la cola. En todos los casos, también se aplica el límite de retención máxima de tareas.
Esta configuración de reintentos a nivel de la tarea anula la configuración de reintentos a nivel de la cola para la tarea.
Configura reintentos cuando crees una tarea
En el siguiente ejemplo, se muestra cómo establecer parámetros de reintento cuando se crea una tarea de destino HTTP enviando una solicitud directa a la API de Cloud Tasks. Puedes usar los mismos parámetros de reintento cuando crees una tarea de App Engine. Para obtener más detalles sobre los parámetros, consulta la configuración de RetryConfig para el recurso Task.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Obligatorio. ID del proyecto de Google Cloud en el que se creará la tarea.REGION: Obligatorio. La región en la que se implementa la cola, por ejemplo,us-central1.QUEUE_ID: Obligatorio. ID de la cola a la que se agregará la tarea.URL: Obligatorio. Es la URL completamente calificada a la que se enviará la solicitud. Esta cadena debe comenzar conhttp://ohttps://, por ejemplo:https://www.example.com.SERVICE_ACCOUNT_EMAIL: Opcional. Es la dirección de correo electrónico de la cuenta de servicio que se usa para generar un token de autorización que se incluye en la solicitud enviada al destino cuando se ejecuta la tarea. La cuenta de servicio debe estar en el mismo proyecto que la fila. La entidad llamadora debe tener el permisoiam.serviceAccounts.actAspara la cuenta de servicio.Para generar un token de acceso de OAuth2 en lugar de un token de OpenID Connect, reemplaza el campo
oidcTokenporoauthTokenpara especificar el correo electrónico de la cuenta de servicio.MAX_ATTEMPTS: es opcional. Es la cantidad máxima de intentos para una tarea, incluido el primero. Para permitir reintentos ilimitados, establece este valor en-1.MAX_RETRY_DURATIONse sigue aplicando incluso si se alcanzaMAX_ATTEMPTSo se establece en-1.MAX_RETRY_DURATION: es opcional. Es la cantidad máxima de tiempo para reintentar una tarea con errores, medida desde el primer intento de la tarea. El valor debe ser una string que termine en "s", como5s. Para especificar una duración ilimitada, establece este valor en0s.MAX_ATTEMPTSse sigue aplicando incluso si se alcanzaMAX_RETRY_DURATIONo se establece en0s.MIN_INTERVAL: es opcional. Es la cantidad mínima de tiempo que se debe esperar entre los intentos de reintento. El valor debe ser una cadena que termine en "s", como5s.MAX_INTERVAL: es opcional. Es la cantidad máxima de tiempo que se espera entre los intentos de reintento. El valor debe ser una cadena que termine en "s", como5s.MAX_DOUBLINGS: es opcional. Es la cantidad máxima de veces que se duplicará el intervalo entre los reintentos de tareas con errores antes de que el aumento se vuelva constante. El intervalo de reintento de una tarea comienza enMIN_INTERVAL, luego se duplicaMAX_DOUBLINGSveces, luego aumenta de forma lineal y, finalmente, se reintenta en intervalos deMAX_INTERVALhastaMAX_ATTEMPTSveces.Por ejemplo, si
MIN_INTERVALes10s,MAX_INTERVALes300syMAX_DOUBLINGSes3, el intervalo de reintento se duplicará3veces, aumentará de forma lineal en 2^3 * 10 s y, luego, se reintentará en intervalos deMAX_INTERVALhasta que se haya intentado la tareaMAX_ATTEMPTSveces: 10 s, 20 s, 40 s, 80 s, 160 s, 240 s, 300 s, 300 s, etcétera.SCHEDULE_TIME: es opcional. Es la fecha y hora en que se programó el intento de la tarea, en formato RFC 3339, por ejemplo,2026-10-02T15:01:23Z. Si no se establece la hora o esta ya pasó, Cloud Tasks la establecerá en la hora actual.
Cuerpo JSON de la solicitud:
{
"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 tu solicitud, expande una de estas opciones:
Si se ejecuta correctamente, el cuerpo de la respuesta contiene la instancia recién creada del 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"
}
¿Qué sigue?
- Crea colas de Cloud Tasks
- Crea tareas de Cloud Tasks
- Configura el enrutamiento, los límites y los reintentos de la cola
- Administra filas y tareas