Como a versão 5.5 do PHP não é mais compatível com a comunidade, recomendamos que novos aplicativos usem o ambiente de execução do PHP 7.

Visão geral da Fila de tarefas

Nesta página, você verá o que são filas de tarefas, quando e como usá-las. Filas de tarefas permitem que aplicativos executem operações, chamadas de tarefas, de maneira assíncrona, fora de uma solicitação do usuário. Se um aplicativo precisa executar algum trabalho de segundo plano, ele adiciona as tarefas a filas de tarefas. As tarefas serão executadas mais tarde pelos service workers.

O serviço de Fila de tarefas foi desenvolvido para trabalho assíncrono. Ele não oferece garantias fortes em relação ao tempo de entrega da tarefa e, portanto, não é adequado para aplicativos interativos em que um usuário aguarda o resultado.

Filas push e pull

As filas de tarefas se dividem em dois tipos: push e pull. A maneira como o serviço da fila de tarefas expede solicitações de tarefas para os serviços de worker é diferente para as diversas filas.

As filas push executam tarefas entregando solicitações HTTP aos serviços de worker do App Engine. Elas emitem essas solicitações a uma taxa confiável e estável e garantem a execução confiável de tarefas. Como você pode controlar a taxa em que as tarefas são enviadas pela fila, também pode controlar o comportamento de dimensionamento dos workers e, portanto, os custos.

As tarefas são executadas como solicitações direcionadas para serviços do App Engine e, por isso, estão sujeitas a prazos rigorosos. As tarefas processadas por serviços de dimensionamento automático precisam terminar em dez minutos. As tarefas processadas por serviços de escalonamento básico e manual podem ser executadas por até 24 horas.

As filas pull não são permitidas no PHP 5.

Dica: em alguns casos, o Google Cloud Pub/Sub é uma boa alternativa às filas pull.

Todas as tarefas da fila de tarefas são realizadas de maneira assíncrona. O aplicativo que cria a tarefa a transfere para a fila. O aplicativo de origem não é notificado se a tarefa foi concluída ou se foi bem-sucedida.

Se um worker não conseguir processar uma tarefa, o serviço Fila de tarefas oferecerá à fila um mecanismo de repetição, para que a tarefa possa ser repetida um número finito de vezes.

Casos de uso

Filas push

Um caso de uso típico de fila push é uma operação "lenta". Pense em um sistema de mensagens de rede social. Toda vez que um usuário envia uma mensagem, a rede precisa atualizar os seguidores do remetente. Isso pode ser uma operação muito demorada. Com uma fila push, o aplicativo pode enfileirar uma tarefa para cada mensagem conforme ela chega a fim de ser enviada a um serviço de worker para processamento. Ao receber a solicitação de tarefa, o worker pode recuperar a lista de seguidores do remetente e atualizar o banco de dados de cada um. O worker pode ser ainda mais eficiente enfileirando outra tarefa push para cada atualização de banco de dados.

Outro uso das filas push são as tarefas programadas. Imagine um aplicativo que implemente uma campanha publicitária. Um grupo de tarefas escritas para enviar e-mails pode ser adicionado a uma fila push com instruções para reter as tarefas até um determinado horário no futuro. Quando a data de entrega chegar, o serviço Fila de tarefas começará a emitir solicitações para executar as tarefas.

A seguir