ID de región
El REGION_ID
es un código abreviado que Google asigna en función de la región que selecciones al crear tu aplicación. El código no corresponde a un país o provincia, aunque algunos IDs de región pueden parecerse a los códigos de país y provincia que se usan habitualmente. En las aplicaciones creadas después de febrero del 2020, REGION_ID.r
se incluye en las URLs de App Engine. En las aplicaciones creadas antes de esa fecha, el ID de región es opcional en la URL.
El archivo de configuración queue.yaml
se usa para crear y configurar casi todas las colas de tareas (de salida o para tareas extraídas) que usa tu aplicación. Todas las aplicaciones de App Engine incluyen una cola de inserción preconfigurada automáticamente llamada default
. Aunque no crees la cola default
, puedes añadir otras colas o cambiar la configuración de la cola default
mediante el archivo queue.yaml
.
Para configurar colas push, puedes usar los métodos queue.yaml
o Queue Management de Cloud Tasks, pero no ambos a la vez. No se recomienda combinar el método de subida queue.yaml
con los métodos de gestión de colas, ya que puede dar lugar a resultados inesperados.
queue.yaml
.
.
Ejemplo
A continuación, se muestra un ejemplo básico que define una cola con nombre y anula la tasa de procesamiento predeterminada:
queue:
- name: my-push-queue
rate: 1/s
A continuación, se muestra un ejemplo más complejo de una configuración de queue.yaml
que muestra cómo configurar el número de intentos de tarea y modificar la tasa de procesamiento predeterminada.
queue:
- name: fooqueue
rate: 1/s
retry_parameters:
task_retry_limit: 7
task_age_limit: 2d
- name: barqueue
rate: 1/s
retry_parameters:
min_backoff_seconds: 10
max_backoff_seconds: 200
max_doublings: 0
- name: bazqueue
rate: 1/s
retry_parameters:
min_backoff_seconds: 10
max_backoff_seconds: 200
max_doublings: 3
Sintaxis
El archivo queue.yaml
es un archivo YAML cuya directiva raíz es queue
.
Esta directiva contiene cero o más colas con nombre. Cada definición de cola puede especificar los siguientes elementos:
Elemento | Descripción |
---|---|
bucket_size (colas de salida) |
Opcional. Una cola de tareas usa el algoritmo token bucket para controlar la velocidad de ejecución de las tareas. Cada cola con nombre tiene un contenedor de tokens que almacena tokens hasta el máximo especificado por el valor bucket_size. Cada vez que tu aplicación ejecuta una tarea, se elimina un token del contenedor. Seguirás 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 de la frecuencia que hayas especificado para la cola. El tamaño del contenedor limita la velocidad a la que se procesa la cola cuando hay muchas tareas en ella y la tasa es alta. El valor máximo del tamaño del contenedor es 500. Esto te permite tener una tasa alta para que el procesamiento empiece poco después de que se ponga en cola una tarea, pero aun así limita el uso de recursos cuando se ponen en cola muchas tareas en un breve periodo de tiempo. Si no especifica bucket_size para una cola, el valor predeterminado es 5. Te recomendamos que le asignes un valor más alto, ya que el tamaño predeterminado puede ser demasiado pequeño para muchos casos prácticos. Por ejemplo, puedes determinar el tamaño del contenedor en función de la velocidad de procesamiento. Para obtener más información sobre este elemento, consulta la descripción comparativa de
|
max_concurrent_requests (colas de salida) |
Opcional. Define el número máximo de tareas que se pueden ejecutar simultáneamente desde la cola especificada. El valor es un número entero. De forma predeterminada, el límite es de 1000 tareas por cola. El límite superior recomendado es de 5000 tareas por cola. Ten en cuenta que las colas pueden aumentar lentamente cuando se crean por primera vez o si han estado inactivas durante un tiempo. Si restringes el número de tareas simultáneas, tendrás más control sobre la frecuencia de ejecución de la cola y podrás evitar que se ejecuten demasiadas tareas a la vez. También puede evitar la contención del almacén de datos y hacer que los recursos estén disponibles para otras colas o para el procesamiento online. Para obtener más información sobre este elemento, consulta la descripción comparativa de |
mode |
Opcional.
Identifica el modo de la cola. El valor predeterminado de este ajuste es |
name |
Obligatorio.
El nombre de la cola. Es el nombre que especificas cuando llamas a El nombre de una cola puede contener letras mayúsculas y minúsculas, números y guiones. La longitud máxima de un nombre de cola es de 100 caracteres.
Todas las aplicaciones tienen una cola push llamada "default". Esta cola tiene una frecuencia predefinida
de 5 tareas por segundo. Ten en cuenta que esta cola predeterminada no se muestra en el Google Cloud console hasta que se usa o se configura por primera vez.
Puedes configurar la cola predeterminada, incluido el cambio de la frecuencia predeterminada, definiendo una cola llamada `default` en tu archivo |
rate (colas de salida) |
Obligatorio.
La frecuencia con la que las tareas se procesan en esta cola. El valor es un número seguido de una barra y una unidad de tiempo, donde la unidad es
Si el número es Para obtener más información sobre este elemento, consulta la descripción comparativa de |
retry_parameters |
Opcional. Configura los intentos de reintento de las tareas fallidas en las colas de inserción. Esta adición te permite especificar el número máximo de veces que se reintentarán las tareas fallidas en una cola específica. También puedes definir un límite de tiempo para los intentos de reintento y controlar el intervalo entre intentos. Los parámetros de reintento pueden contener los siguientes subelementos:
|
target (colas de salida) |
Opcional. Cadena que indica el nombre de un servicio o una versión, una versión de frontend o un backend en el que se ejecutarán todas las tareas encoladas en esta cola. El valor predeterminado es una cadena vacía.
La cadena se añade al principio del nombre de dominio de tu aplicación al crear la solicitud HTTP de una tarea. Por ejemplo, si el ID de tu aplicación es Si no se especifica el destino, las tareas se invocan en la misma versión de la aplicación en la que se pusieron en cola. Por lo tanto, si has puesto en cola una tarea desde la versión predeterminada de la aplicación sin especificar un destino en la cola, la tarea se invoca en la versión predeterminada de la aplicación. Ten en cuenta que, si la versión predeterminada de la aplicación cambia entre el momento en que se pone en cola la tarea y el momento en que se ejecuta, la tarea se ejecutará en la nueva versión predeterminada. Si usas servicios junto con un archivo dispatch, la solicitud HTTP de tu tarea se puede interceptar y redirigir a otro servicio. |
Se pueden especificar los siguientes elementos para todas las colas de una aplicación:
Elemento | Descripción |
---|---|
total_storage_limit |
Opcional. Cadena que anula el límite de almacenamiento de cuota predeterminado que está disponible para el almacenamiento de colas de tareas (100 M). Por ejemplo: total_storage_limit: 1.2G queue: - name: fooqueue Esta cuota forma parte de la cuota de almacenamiento total de la aplicación (incluidas las cuotas de Datastore y Blobstore). Si no se especifica ningún sufijo, el número que especifiques se interpretará como bytes. Se admiten los siguientes sufijos:
Si
|
Desplegar el archivo de configuración de la cola
El archivoqueue.yaml
debe estar en el directorio raíz o en el directorio que define el servicio predeterminado.
Para implementar el archivo de configuración de la cola, ejecuta el siguiente comando:
gcloud app deploy queue.yaml
Eliminar colas
Para eliminar una cola, sigue estos pasos:
Quita la definición de la cola del archivo
queue.yaml
.Sube el cambio al archivo
queue.yaml
.gcloud app deploy queue.yaml
Elimina la cola en la consola Google Cloud , selecciona la cola y haz clic en Eliminar cola:
Si eliminas una cola de la Google Cloud consola, debes esperar 7 días para volver a crearla con el mismo nombre.