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
, que está configurada e
pronta para uso com as configurações padrão. Se 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é 100 filas. 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.
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 buckets de token para
controlar a taxa de execução. Cada fila nomeada tem um bucket de token que
retém os tokens, até o máximo especificado por bucket_size
ou com um máximo de
5 tokens se você não especificar o tamanho do bucket.
Cada vez que o aplicativo executa uma tarefa, um token é removido do bucket.
O app continua processando tarefas na fila até acabarem os tokens
do bucket da fila. O App Engine preenche o bucket outra vez com novos tokens continuamente, com base
no rate
que você especificou para a fila.
Caso a fila contenha tarefas a serem processadas e o bucket da fila contenha tokens, o App Engine processa simultaneamente o mesmo número de tarefas e tokens. Isso pode causar bursts de processamento, consumindo recursos do sistema e competindo com solicitações de veiculação do usuário.
Se quiser impedir a execução de muitas tarefas ao mesmo tempo, ou o
conflito de armazenamento de dados, use max_concurrent_requests
.
O exemplo a seguir mostra como definir max_concurrent_requests
para limitar tarefas e também como ajustar o tamanho e a taxa do bucket com base nas necessidades do aplicativo e nos recursos disponíveis:
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 de armazenamento total, inclua um elemento chamado 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. Use esse limite para proteger o aplicativo de um erro de programação de fork bomb em que as tarefas adicionam várias outras durante a execução.
Se o aplicativo receber erros de cota insuficiente quando forem adicionadas tarefas, o aumento do 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 Google Cloud
No console do Google Cloud, acesse a página do Cloud Tasks.
Se você acessar a página Fila de tarefas do App Engine, verá instruções que guiam você para a página "Cloud Tasks". Essa atualização no console do Google Cloud não altera como as filas de tarefas funcionam.
Ative a API Cloud Tasks.
Quando estiver na página "Cloud Tasks", você verá uma lista de todas as filas no aplicativo. Clicar no nome de uma fila exibirá a página Detalhes da fila, que mostra todas as tarefas na fila selecionada.
A seguir
Saiba mais sobre como criar tarefas.