Nesta página, você encontra uma visão geral das filas pull no ambiente padrão do App Engine.
Nas filas push, as tarefas são entregues para o serviço do worker com base na configuração da fila. Nas filas pull, o serviço do worker precisa solicitar tarefas à fila. A fila responde permitindo que esse worker tenha acesso exclusivo para processar a tarefa por um período específico. Isso é chamado de lease.
Além disso, com as filas pull, é possível agrupar tarefas relacionadas usando tags e, em seguida, configurar o worker para extrair várias tarefas com uma determinada tag de uma só vez. Isso é chamado de processamento em lotes.
Se um worker não processar uma tarefa a tempo, ele poderá renovar a alocação ou deixá-la expirar para que outro worker a adquira. Após a conclusão do trabalho associado a uma tarefa, o worker precisa excluí-la.
As filas exigem que o código lide com algumas funções que são automatizadas nas filas push:
- Escalonamento de workers
- O código precisa escalonar o número de workers com base no volume de processamento. Caso o código não faça o escalonamento, há a possibilidade de perder recursos de computação se não houver tarefas a serem processadas. Se houver muitas tarefas, haverá o risco de latência.
- Exclusão de tarefas
- O código também precisa excluir explicitamente as tarefas após o processamento. Em filas push, o App Engine exclui as tarefas por você. No entanto, se o worker não excluir tarefas da fila pull após o processamento, outro worker processará novamente a tarefa. Isso desperdiça recursos de computação e apresenta risco de erros quando as tarefas não são idempotentes.
No ambiente padrão do App Engine, as filas pull são criadas com a definição de uma propriedade em um arquivo de configuração chamado
queue.yaml
.
Fluxo de trabalho da fila pull
Os workers que processam tarefas de filas pull precisam ser definidos em um serviço que seja executado no ambiente padrão do App Engine.
O fluxo de trabalho é o seguinte:
- Crie uma fila pull usando
queue.yaml
. - Crie tarefas e as adiciona à fila.
- O worker criado coloca a tarefa em lease, usando o TaskQueue.
- O App Engine envia os dados da tarefa ao worker na resposta da alocação.
- O worker processa a tarefa. Se a tarefa não for executada antes do término da alocação, o worker poderá modificar a duração da alocação. Se a alocação expirar, a tarefa estará disponível para ser alocada a outro worker.
- Quando a tarefa for processada, o worker a excluirá.
A seguir
- Saiba como criar filas pull.