ID da região
O REGION_ID
é um código abreviado que a Google atribui com base na região que seleciona quando cria a sua app. O código não corresponde a um país ou uma província, embora alguns IDs de regiões possam parecer semelhantes aos códigos de países e províncias usados frequentemente. Para apps criadas após
fevereiro de 2020, REGION_ID.r
está incluído nos
URLs do App Engine. Para apps existentes criadas antes desta data, o
ID da região é opcional no URL.
Saiba mais acerca dos IDs de regiões.
O ficheiro de configuração queue.yaml
é usado para criar e configurar quase todas as filas de tarefas (push ou pull) que a sua app usa. Todas as apps do App Engine incluem uma fila de envio pré-configurada automaticamente denominada default
. Embora não crie a fila default
, pode adicionar outras filas ou alterar a configuração da fila default
através do ficheiro queue.yaml
.
Para configurar filas de envio, pode usar os métodos queue.yaml
ou Queue Management do Cloud Tasks, mas não ambos em simultâneo. A combinação do método de carregamento queue.yaml
com métodos de gestão de filas pode produzir resultados inesperados e não é recomendada.
queue.yaml
.
Exemplo
Segue-se um exemplo básico que define uma fila com nome e substitui a taxa de processamento predefinida:
queue:
- name: my-push-queue
rate: 1/s
Segue-se um exemplo mais complexo de uma configuração queue.yaml
que
demonstra a configuração do número de tentativas de tarefas e a modificação da taxa de processamento predefinida.
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
Sintaxe
O ficheiro queue.yaml
é um ficheiro YAML cuja diretiva raiz é queue
.
Esta diretiva contém zero ou mais filas com nome. Cada definição de fila pode especificar os seguintes elementos:
Elemento | Descrição |
---|---|
bucket_size (filas de envios) |
Opcional. Uma fila de tarefas usa o algoritmo de token bucket para controlar a taxa de execução de tarefas. Cada fila com nome tem um contentor de tokens que contém tokens, até ao máximo especificado pelo valor bucket_size. Sempre que a sua aplicação executa uma tarefa, é removido um token do depósito. Continua a processar tarefas na fila até que o bucket da fila fique sem tokens. O App Engine volta a encher o contentor com novos tokens continuamente com base na taxa que especificou para a fila. O tamanho do contentor limita a velocidade de processamento da fila quando existem muitas tarefas na fila e a taxa é elevada. O valor máximo do tamanho do grupo é 500. Isto permite-lhe ter uma taxa elevada para que o processamento comece pouco depois de uma tarefa ser colocada em fila, mas ainda assim limitar a utilização de recursos quando muitas tarefas são colocadas em fila num curto período de tempo. Se não especificar bucket_size para uma fila, o valor predefinido é 5. Recomendamos que defina este valor para um valor superior, uma vez que o tamanho predefinido pode ser demasiado pequeno para muitos exemplos de utilização. Por exemplo, pode determinar o tamanho do seu grupo com base na taxa de processamento. Para mais informações sobre este elemento, consulte a descrição comparativa de
|
max_concurrent_requests (filas de envios) |
Opcional. Define o número máximo de tarefas que podem ser executadas em simultâneo a partir da fila especificada. O valor é um número inteiro. Por predefinição, o limite é de 1000 tarefas por fila. O limite superior recomendado é de 5000 tarefas por fila. Tenha em atenção que as filas podem aumentar lentamente quando são criadas pela primeira vez ou se estiverem inativas durante algum tempo. Restringir o número de tarefas simultâneas dá-lhe mais controlo sobre a taxa de execução da fila e pode impedir que demasiadas tarefas sejam executadas em simultâneo. Também pode evitar a contenção da base de dados e disponibilizar recursos para outras filas ou processamento online. Para mais informações sobre este elemento, consulte a descrição comparativa de
|
mode |
Opcional.
Identifica o modo de fila. Esta definição é predefinida como |
name |
Obrigatório.
O nome da fila. Este é o nome que especifica quando liga para o número Um nome de fila pode conter letras maiúsculas e minúsculas, números e hífenes. O comprimento máximo do nome de uma fila é de 100 carateres.
Todas as apps têm uma fila de envio denominada predefinição. Esta fila tem uma taxa predefinida
de 5 tarefas por segundo. Tenha em atenção que esta fila predefinida não é apresentada no
Google Cloud console até ser usada ou configurada pela primeira vez.
Pode configurar a fila predefinida, incluindo a alteração da taxa predefinida,
definindo uma fila denominada "predefinição" no ficheiro |
rate (filas de envios) |
Obrigatório.
Com que frequência as tarefas são processadas nesta fila. O valor é um número
seguido de uma barra e uma unidade de tempo, em que a unidade é
Se o número for Para mais informações sobre este elemento, consulte a descrição comparativa de
|
retry_parameters |
Opcional. Configura as tentativas de repetição para tarefas falhadas em filas de envio. Esta adição permite-lhe especificar o número máximo de vezes para repetir tarefas com falhas numa fila específica. Também pode definir um limite de tempo para as tentativas e controlar o intervalo entre tentativas. Os parâmetros de nova tentativa podem conter os seguintes subelementos:
|
target (filas de envios) |
Opcional. Uma string que atribui um nome a um serviço/versão, uma versão de front-end ou um back-end, no qual executar todas as tarefas colocadas em fila nesta fila. O valor predefinido é a string vazia.
A string é anteposta ao nome do domínio da sua app quando
constrói o pedido HTTP para uma tarefa. Por exemplo, se o ID da app for Se o destino não for especificado, as tarefas são invocadas na mesma versão da aplicação em que foram colocadas na fila. Assim, se colocar uma tarefa em fila a partir da versão da aplicação predefinida sem especificar um destino na fila, a tarefa é invocada na versão da aplicação predefinida. Tenha em atenção que, se a versão da aplicação predefinida mudar entre o momento em que a tarefa é colocada na fila e o momento em que é executada, a tarefa é executada na nova versão predefinida. Se estiver a usar serviços juntamente com um ficheiro de envio, o pedido HTTP da sua tarefa pode ser intercetado e reencaminhado para outro serviço. |
Os seguintes elementos podem ser especificados para todas as filas numa app:
Elemento | Descrição |
---|---|
total_storage_limit |
Opcional. Uma string que substitui o limite de armazenamento da quota predefinido que está disponível para o armazenamento de taskqueue (100 M). Por exemplo: total_storage_limit: 1.2G queue: - name: fooqueue Esta quota faz parte da quota de armazenamento total da aplicação (incluindo a quota da base de dados e do armazenamento de blobs). Se não for especificado nenhum sufixo, o número que especificar é interpretado como bytes. São suportados os seguintes sufixos:
Se
|
Implementar o ficheiro de configuração da fila
O ficheiroqueue.yaml
deve residir no diretório raiz ou no diretório que define o serviço predefinido.
Para implementar o ficheiro de configuração da fila, execute o seguinte comando:
gcloud app deploy queue.yaml
Eliminar filas
Para eliminar uma fila:
Remova a definição da fila do ficheiro
queue.yaml
.Carregue a alteração para o ficheiro
queue.yaml
.gcloud app deploy queue.yaml
Elimine a fila na Google Cloud consola, selecione a fila e clique em Eliminar fila:
Se eliminar uma fila da Google Cloud consola, tem de aguardar 7 dias antes de a recriar com o mesmo nome.