Como criar filas push

Nesta página, aprenda a criar e personalizar uma fila push e a examinar o conteúdo de uma fila.

Como usar um arquivo de configuração de fila para criar filas

Para processar uma tarefa, você precisa adicioná-la a uma fila push. O App Engine fornece uma fila push padrão, chamada default, configurada e pronta para ser usada com configurações padrão. Se você quiser, basta adicionar todas as tarefas à fila padrão, sem precisar criar e configurar outras filas.

Para adicionar filas ou alterar a configuração padrão, edite o arquivo de configuração da fila do aplicativo enviado para o App Engine. É possível criar até 10 filas para aplicativos gratuitos e até 100 filas para aplicativos ativados para faturamento. Não é possível criar filas dinamicamente.

Este arquivo de configuração define duas filas:

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

- name: queue-red
  rate: 1/s

Para fazer upload do arquivo:

gcloud app deploy queue.yaml

Todas as tarefas adicionadas a queue-blue são enviadas para o módulo de destino v2.task-module. A taxa de atualização de queue-red é alterada de 5/s para 1/s. As tarefas serão removidas da fila e enviadas para os destinos à taxa de uma tarefa por segundo.

Se excluir uma fila, você precisará esperar aproximadamente sete dias para criar uma nova fila com o mesmo nome.

Existem muitos outros parâmetros que podem ser adicionados ao arquivo de configuração para personalizar o comportamento de uma fila push. Para mais informações, consulte a referência do arquivo de configuração de fila.

Como definir a taxa de processamento da fila push

É possível controlar a taxa em que as tarefas são processadas em cada uma das filas definindo outras diretivas, como rate, bucket_size e max_concurrent_requests.

A fila de tarefas usa intervalos de token para controlar a taxa de execução. Cada fila nomeada tem um intervalo de token que contém tokens até o máximo especificado por bucket_size, ou no máximo cinco tokens, caso você não especifique o tamanho do intervalo.

Cada vez que o aplicativo executa uma tarefa, um token é removido do intervalo. O app continua processando tarefas na fila até acabarem os tokens do intervalo da fila. O App Engine recarrega o intervalo com novos tokens continuamente com base na rate especificada para a fila.

Caso a fila contenha tarefas a serem processadas e o intervalo da fila contenha tokens, o App Engine processa simultaneamente o mesmo número de tarefas e tokens. Isso pode causar bursts de processamento, o que consome recursos do sistema e concorre com solicitações de atendimento ao usuário.

Para evitar que muitas tarefas sejam executadas de uma só vez ou impedir a contenção do armazenamento de dados, use max_concurrent_requests.

A seguinte amostra ilustra como definir max_concurrent_requests para limitar tarefas e também como ajustar o tamanho e a taxa do intervalo com base nas necessidades e nos recursos disponíveis do aplicativo:

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

Como definir limites de armazenamento para todas as filas

Use o arquivo de configuração de filas para definir o volume total de armazenamento que os dados da tarefa podem consumir em todas as filas. Para definir o limite total de armazenamento, inclua um elemento denominado total_storage_limit no nível superior:

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

O valor é um número seguido de uma unidade: B para bytes, K para kilobytes, M para megabytes, G para gigabytes, T para terabytes. Por exemplo, 100K especifica um limite de 100 kilobytes. Se adicionar uma tarefa fizer com que a fila exceda o limite de armazenamento, a chamada para adicionar a tarefa apresentará uma falha. O limite padrão é 500M (500 megabytes) para aplicativos gratuitos. Para aplicativos faturados, não haverá limite até você definir um. É possível usar esse limite para proteger o aplicativo de um erro de programação de fork bomb, em que cada tarefa adiciona várias outras durante a execução.

Se o app estiver recebendo erros para uma cota insuficiente ao adicionar tarefas, aumentar o limite de armazenamento total poderá ajudar. Se estiver usando esse recurso, recomendamos definir um limite que corresponda ao armazenamento necessário para vários dias de tarefas. Isso permite o backup temporário das filas e a aceitação contínua de novas tarefas durante o trabalho no backlog e ainda mantém a proteção contra um erro de programação do tipo "fork bomb".

Como monitorar filas no Console do GCP

Na página "Filas de tarefas", no Console do GCP, são exibidas informações sobre todas as filas de tarefas no aplicativo.

  1. Visite a página "Filas de tarefas" no Console do GCP e selecione a guia "Filas push" na barra de menus na parte superior da página.

    Acessar a guia Filas push

  2. A guia Filas push lista todas as filas no aplicativo. Quando você clica no nome de uma fila, a página Detalhes da fila de tarefas é aberta, onde é possível ver todas as tarefas na fila selecionada.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2