Crear colas de salida

En esta página se describe cómo crear y personalizar una cola de salida, así como consultar sus contenidos.

Usar un archivo de configuración de colas para crear colas

Para procesar una tarea, debes añadirla a una cola de inserción. App Engine proporciona una cola de inserción predeterminada llamada default, que está configurada y lista para usar con los ajustes predeterminados. Si quieres, puedes añadir todas tus tareas a la cola predeterminada sin tener que crear ni configurar otras colas.

Para añadir colas o cambiar la configuración predeterminada, edita el archivo de configuración de la cola de tu aplicación y súbelo a App Engine. Puedes crear hasta 100 colas. Las colas no se pueden crear de forma dinámica.

Este archivo de configuración de colas define dos colas:

queue:
- name: queue-blue
  target: v2.task-module
  rate: 5/s

- name: queue-red
  rate: 1/s

Para subir el archivo, sigue estos pasos:

gcloud app deploy queue.yaml

Todas las tareas añadidas a queue-blue se envían al módulo de destino v2.task-module. La frecuencia de actualización de queue-red ha cambiado de 5/s a 1/s. Las tareas se quitarán de la cola y se enviarán a sus destinos a un ritmo de 1 tarea por segundo.

Si eliminas una cola, debes esperar aproximadamente 7 días antes de crear otra con el mismo nombre.

Hay muchos otros parámetros que se pueden añadir al archivo de configuración para personalizar el comportamiento de una cola de inserción. Para obtener más información, consulta la referencia del archivo de configuración de colas.

Definir la velocidad de procesamiento de la cola de salida

Puedes controlar la velocidad a la que se procesan las tareas de cada una de tus colas definiendo otras directivas, como rate, bucket_size y max_concurrent_requests.

La cola de tareas usa segmentos de tokens para controlar la frecuencia de ejecución de las tareas. Cada cola con nombre tiene un contenedor de tokens que contiene tokens, hasta el máximo especificado por bucket_size o un máximo de 5 tokens si no especifica el tamaño del contenedor.

Cada vez que tu aplicación ejecuta una tarea, se elimina un token del contenedor. Tu aplicación sigue procesando las tareas de la cola hasta que se agoten los tokens del contenedor de la cola. App Engine rellena el contenedor con nuevos tokens continuamente en función del rate que hayas especificado para la cola.

Si tu cola contiene tareas que procesar y el contenedor de la cola contiene tokens, App Engine procesa simultáneamente tantas tareas como tokens haya. Esto puede provocar picos de procesamiento, lo que consume recursos del sistema y compite con las solicitudes de servicio de los usuarios.

Si quieres evitar que se ejecuten demasiadas tareas a la vez o que se produzcan conflictos en el almacén de datos, usa max_concurrent_requests.

En el siguiente ejemplo se muestra cómo definir max_concurrent_requests para limitar las tareas y cómo ajustar el tamaño y la frecuencia del contenedor en función de las necesidades de tu aplicación y de los recursos disponibles:

queue:
- name: queue-blue
  rate: 20/s
  bucket_size: 40
  max_concurrent_requests: 10

Definir límites de almacenamiento para todas las colas

Puedes usar el archivo de configuración de la cola para definir la cantidad total de almacenamiento que pueden consumir los datos de las tareas en todas las colas. Para definir el límite de almacenamiento total, incluya un elemento llamado total_storage_limit en el nivel superior:

# Set the total storage limit for all queues to 120MB
total_storage_limit: 120M
queue:
- name: queue-blue
  rate: 35/s

El valor es un número seguido de una unidad: B para bytes, K para kilobytes, M para megabytes, G para gigabytes y T para terabytes. Por ejemplo, 100K especifica un límite de 100 kilobytes. Si al añadir una tarea se supera el límite de almacenamiento de la cola, la llamada para añadir la tarea fallará. El límite predeterminado es de 500M (500 megabytes) para las aplicaciones gratuitas. En el caso de las aplicaciones de pago, no hay límite hasta que definas uno explícitamente. Puedes usar este límite para proteger tu aplicación de un error de programación de fork bomb, en el que cada tarea añade varias tareas durante su ejecución.

Si tu aplicación recibe errores de cuota insuficiente al añadir tareas, puedes aumentar el límite de almacenamiento total. Si utilizas esta función, te recomendamos que definas un límite que corresponda al almacenamiento necesario para las tareas de varios días. De esta forma, las colas pueden hacer copias de seguridad temporales y seguir aceptando nuevas tareas mientras se trabaja en el backlog, al tiempo que se protegen de un error de programación de fork bomb.

Monitorizar colas en la consola de Google Cloud

  1. En la Google Cloud consola, ve a la página Cloud Tasks.

    Ve a Cloud Tasks.

    Ten en cuenta que, si vas a la página Cola de tareas de App Engine, verás instrucciones que te dirigirán a la página de Cloud Tasks. Esta actualización de la Google Cloud consola no cambia el funcionamiento de las colas de tareas.

  2. Habilita la API de Cloud Tasks.

  3. Una vez que estés en la página Cloud Tasks, verás una lista con todas las colas de la aplicación. Al hacer clic en el nombre de una cola, se abre la página Detalles de la cola, que muestra todas las tareas de la cola seleccionada.

Siguientes pasos

Consulta información sobre cómo crear tareas.