Problemas y limitaciones

En esta página, se describen algunos de los problemas y limitaciones que podrías encontrar cuando uses Cloud Tasks.

Orden de ejecución

Salvo por las tareas programadas para ejecutarse en el futuro, las listas de tareas en cola no aplican ninguna preferencia en cuanto al orden de ejecución. No se garantiza ni se intenta que las tareas se ejecuten en ningún orden en particular. Específicamente, esto implica que no existe garantía alguna de que las tareas más antiguas vayan a ejecutarse, a menos que se vacíe por completo la cola. Existen algunos casos comunes en los que las tareas más nuevas se ejecutan antes que las más antiguas, y los patrones relacionados con estos casos pueden cambiar sin previo aviso.

Ejecución duplicada

Cloud Tasks apunta a una semántica estricta de "ejecutar exactamente una vez". Sin embargo, en situaciones en las que se debe hacer una compensación de diseño entre la ejecución garantizada y la ejecución duplicada, el servicio prefiere errar del lado de la ejecución garantizada. Por tanto, es inevitable que algunas tareas se ejecuten por duplicado. Los desarrolladores deben tomar medidas para asegurarse de que las ejecuciones duplicadas no sean un evento catastrófico. En producción, más del 99.999% de las tareas se ejecuta solo una vez.

Limitaciones de recursos

La fuente más común de tareas pendientes en las colas de procesamiento inmediato es el agotamiento de los recursos de las instancias objetivo. Si un usuario intenta ejecutar 100 tareas por segundo en instancias de front-end que solo pueden ejecutar 10 solicitudes por segundo, se generará una pila de trabajo pendiente. Por lo general, esto se manifiesta de una de dos maneras, pero ambas pueden resolverse generalmente aumentando la cantidad de instancias que procesan las solicitudes.

Errores de retirada y frecuencias forzadas

Cuando se sobrecargan, los servidores pueden comenzar a mostrar errores de retirada: HTTP 503 (para destinos de App Engine) o HTTP 429 o 5xx (para destinos externos). Cloud Tasks reacciona a estos errores disminuyendo la velocidad de ejecución hasta que dejen de producirse. Este sistema de limitación evita que el trabajador se sobrecargue. Ten en cuenta que no se cambiará la configuración especificada por el usuario.

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

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

  • Para evitar los picos de tráfico y suavizar los aumentos repentinos, los envíos se incrementan lentamente cuando la cola se crea recientemente o está inactiva, y si una gran cantidad de tareas de repente están disponibles para el envío (debido a picos en las tasas de creación de tareas, la reanudación de la cola o muchas tareas programadas al mismo tiempo).

Picos de latencia y máximo simultáneo

Cuando se sobrecargan, los servidores también pueden responder con grandes aumentos en la latencia. En esta situación, las solicitudes permanecen abiertas durante más tiempo. Dado que las colas se ejecutan con un máximo de solicitudes simultáneas, esto puede impedir que las colas puedan ejecutar tareas con la frecuencia prevista. Aumentar el valor de max_concurrent_dispatches para las colas afectadas puede ayudar en situaciones en las que se genera un límite de frecuencia artificial debido a que el valor es muy bajo. Sin embargo, es poco probable que aumentar max_concurrent_dispatches pueda aliviar la presión subyacente sobre los recursos.

Problemas de aceleración con tareas de larga duración

Las colas de Cloud Tasks aumentan su producción en parte según la cantidad de tareas enviadas correctamente con anterioridad. Si el controlador de tareas tarda un período considerable (del orden de minutos) en completar una tarea y devolver una respuesta de éxito, puede haber un retraso en la tasa de aumento de la cola.

Visualización de más de 5,000 tareas

Si tienes más de 5,000 tareas, algunas no se verán en la consola deGoogle Cloud . Usa la CLI de gcloud para ver todas las tareas.

Cómo volver a crear una cola con el mismo nombre

Si borras una cola de la consola de Google Cloud , debes esperar 3 días antes de volver a crearla con el mismo nombre. Este período 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 fallas en los procesos internos durante el ciclo de eliminación o recreación.