Problemas y limitaciones

En esta página se describen algunos de los problemas y limitaciones que puede encontrar al usar Cloud Tasks.

Orden de ejecución

A excepción de las tareas programadas para ejecutarse en el futuro, las colas de tareas son completamente independientes de la plataforma en cuanto al orden de ejecución. No se garantiza ni se hace ningún esfuerzo para ejecutar las tareas en un orden concreto. En concreto, no hay ninguna garantía de que las tareas antiguas se ejecuten a menos que una cola se vacíe por completo. Hay varios casos habituales en los que las tareas más recientes se ejecutan antes que las más antiguas, y los patrones relacionados con esto pueden cambiar sin previo aviso.

Ejecución duplicada

Cloud Tasks tiene como objetivo una semántica estricta de "ejecutar exactamente una vez". Sin embargo, en situaciones en las que se debe elegir entre la ejecución garantizada y la ejecución duplicada, el servicio se decanta por la ejecución garantizada. Como tal, se produce un número distinto de cero de ejecuciones duplicadas. Los desarrolladores deben tomar medidas para asegurarse de que la ejecución duplicada no sea un evento catastrófico. En producción, más del 99,999% de las tareas se ejecutan solo una vez.

Limitaciones de recursos

La fuente más común de retrasos en las colas de procesamiento inmediatas es agotar los recursos en las instancias de destino. Si un usuario está intentando ejecutar 100 tareas por segundo en instancias de frontend que solo pueden procesar 10 peticiones por segundo, se generará una acumulación. En general, esto se manifiesta de una de dos maneras, de las cuales cualquiera generalmente se puede resolver aumentando el número de peticiones de procesamiento de instancias.

Errores de retroceso y tasas aplicadas

Los servidores que están sobrecargados pueden empezar a devolver errores de retardo: HTTP 503 (para destinos de App Engine) o HTTP 429 o 5xx (para destinos externos). Cloud Tasks reacciona a estos errores ralentizando la ejecución hasta que dejen de producirse. Este sistema de limitación evita que el trabajador se sobrecargue. Nota: Los ajustes especificados por el usuario no se modifican.

La limitación del sistema se produce en las siguientes circunstancias:

  • Cloud Tasks retrocede en todos los errores. Normalmente, se usa el tiempo de espera especificado en rate limits. Sin embargo, si el trabajador devuelve HTTP 429 Too Many Requests o 503 Service Unavailable, o si la tasa de errores es alta, Cloud Tasks usa una tasa de espera exponencial más alta. Se tiene en cuenta el reintento especificado en la cabecera de respuesta HTTP Retry-After.

  • Para evitar picos de tráfico y suavizar los aumentos repentinos del tráfico, los envíos se incrementan lentamente cuando la cola se crea o está inactiva, y si de repente hay un gran número de tareas disponibles para enviar (debido a picos en las tasas de creación de tareas, a que la cola se despausa o a que se programan muchas tareas al mismo tiempo).

Picos de latencia y número máximo de peticiones simultáneas

Los servidores sobrecargados también pueden responder con grandes aumentos de la latencia. En esta situación, las peticiones permanecen abiertas durante más tiempo. Dado que las colas se ejecutan con un número máximo de tareas simultáneas, es posible que estas no puedan ejecutar tareas a la velocidad esperada. Aumentar el valor de max_concurrent_dispatches de las colas afectadas puede ayudar en situaciones en las que el valor se ha definido demasiado bajo, lo que introduce un límite de frecuencia artificial. Sin embargo, aumentar max_concurrent_dispatches no aliviará la presión de los recursos subyacentes.

Problemas de aumento de la carga con tareas de larga duración

Las colas de Cloud Tasks aumentan su salida en función del número de tareas enviadas anteriormente que se hayan completado correctamente. Si el controlador de tareas tarda un tiempo considerable (del orden de minutos) en completar una tarea y devolver una respuesta correcta, puede haber un retraso en la tasa de aumento de la cola.

Ver más de 5000 tareas

Si tienes más de 5000 tareas, algunas no se verán en la consolaGoogle Cloud . Usa gcloud CLI para ver todas las tareas.

Volver a crear una cola con el mismo nombre

Si eliminas una cola de la consola Google Cloud , debes esperar 3 días para volver a crearla con el mismo nombre. Este periodo de espera evita comportamientos inesperados en las tareas que se están ejecutando en el momento de la eliminación o que están esperando a ejecutarse. También evita errores internos en el proceso de eliminación o recreación.