Cuando creas una tarea, puedes especificar la cantidad máxima de veces que se debe reintentar una
tarea con errores, establecer un límite de tiempo para los reintentos y controlar el intervalo
entre ellos con el
projects.locations.queues.tasks.create
método. Una vez que se ejecuta una tarea de forma correcta, se quita de la cola. En
todos los casos, también se aplica el límite máximo de retención de tareas.
Esta configuración de reintento a nivel de tarea anula la configuración de reintento a nivel de cola para la tarea.
Configura los reintentos cuando creas una tarea
En el siguiente ejemplo, se muestra cómo configurar los parámetros de reintento cuando se crea una tarea de destino HTTP mediante el envío de una solicitud directa a la API de Cloud Tasks. Puedes
usar los mismos parámetros de reintento cuando
creas una tarea de App Engine. Para
obtener más detalles sobre los parámetros, consulta la
RetryConfig configuración para el
Task recurso.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: es obligatorio. Es el ID del Google Cloud proyecto en el que se creará la tarea.REGION: es obligatorio. Es la región en la que se implementa la cola, por ejemplo,us-central1.QUEUE_ID: es obligatorio. Es el ID de la cola a la que se agregará la tarea.URL: es 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: es opcional. Es el 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 cola. El llamador debe tener eliam.serviceAccounts.actAspermiso para la cuenta de servicio.Para generar un token de acceso de OAuth2 en lugar de un token de OpenID Connect, reemplaza el
oidcTokencampo poroauthTokenpara especificar el correo electrónico de la cuenta de servicio.MAX_ATTEMPTS: es opcional. Es la cantidad máxima de intentos de una tarea (incluido el primero) . Para permitir una cantidad ilimitada de reintentos, configúralo en-1.MAX_RETRY_DURATIONse sigue aplicando incluso siMAX_ATTEMPTSse alcanza o se establece en-1.MAX_RETRY_DURATION: es opcional. Es la cantidad máxima de tiempo que debe esperarse antes de reintentar una tarea con errores, medido desde la primera ejecución de la tarea. El valor debe ser una string que termine en "s", como5s. Para especificar una duración ilimitada, configúralo 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 reintentos. El valor debe ser una string que termine en "s", como5s.MAX_INTERVAL: es opcional. Es la cantidad máxima de tiempo que se debe esperar entre los reintentos. El valor debe ser una string que termine en "s", como5s.MAX_DOUBLINGS: es opcional. Es la cantidad máxima de veces que se puede duplicar el intervalo entre reintentos de las tareas con errores antes de que el aumento se vuelva constante. El intervalo de reintento de una tarea comienza enMIN_INTERVAL, luego duplica los tiempos deMAX_DOUBLINGS, después aumenta linealmente y, por último, reintenta en intervalos deMAX_INTERVALhasta lograr la cantidad máxima de reintentos.MAX_ATTEMPTSPor ejemplo, si
MIN_INTERVALes10s,MAX_INTERVALes300syMAX_DOUBLINGSes3, el intervalo de reintento se duplicará3veces, aumentará linealmente en 2^3 * 10 s y, luego, se reintentará en intervalos deMAX_INTERVALhasta que la tarea se haya intentadoMAX_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 hora en la que se programa la tarea para que se intente, en formato RFC 3339, por ejemplo,2026-10-02T15:01:23Z. Si la hora no está configurada o es anterior, 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 el proceso se realiza de forma correcta, el cuerpo de la respuesta contiene la instancia recién creada de
el 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"
}
¿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 las colas y las tareas