Migrar do Task Queues para o Cloud Tasks

É possível migrar do serviço de fila do ambiente padrão do App Engine (filas de tarefas) por meio da API de fila de tarefas do App Engine para acessar o mesmo serviço usando o Cloud Tasks, uma nova API REST/RPC. O Cloud Tasks pode ser empregado fora dos ambientes de execução do App Engine de primeira geração, especialmente em ambientes flexíveis do App Engine, bem como em ambientes de execução padrão do App Engine de segunda geração.

O Cloud Tasks e o serviço atual da fila de tarefas do ambiente padrão do App Engine existem em um único universo. É possível adicionar às mesmas filas por meio da API. Nos dois casos, uma fila pertence a um aplicativo. Independentemente de você usar o SDK do App Engine ou a nova API Cloud Tasks, uma fila no aplicativo encaminha uma tarefa a um URL de manipulador para processamento assíncrono.

Novos recursos

Alguns recursos, não disponíveis por meio do SDK do App Engine, são fornecidos pelo Cloud Tasks, incluindo:

  • gerenciamento de fila por meio da API;

    É possível criar, excluir, pausar e executar outras tarefas de gerenciamento de filas usando a API, por meio do Console ou por meio do comando gcloud.

  • Comando Listar filas.

    Liste todas as filas configuradas no projeto.

  • Comando Listar tarefas.

    Liste todas as tarefas em qualquer uma das filas.

  • Integração de gerenciamento de identidade e acesso (IAM, na sigla em inglês):

    Use o IAM para proteger o acesso a filas e tarefas de maneira altamente granular.

Recursos nas filas de tarefas, ainda não disponíveis por meio da API do Cloud Tasks:

  • Filas pull:

    Use o Cloud Pub/Sub, um produto do GA, para implementar os mesmo casos de uso das filas pull.

  • Tarefas transacionais:

    O Cloud Tasks não é compatível com o enfileiramento de uma tarefa como parte de uma transação do Cloud Datastore, de modo que a tarefa será certamente enfileirada somente se a transação for confirmada com êxito.

  • Tarefas deferidas/atrasadas:

    Quando você precisa manipular diversas tarefas pequenas de forma assíncrona, mas não quer configurar gerenciadores individuais distintos, o SDK do App Engine permite usar bibliotecas específicas do ambiente de execução para criar funções simples para gerenciar essas tarefas. Esse recurso não está disponível no Cloud Tasks. No entanto, é possível programar tarefas normais com o Cloud Tasks.

  • Atribuição do namespace:

    Alguns ambientes de execução que usam o SDK do App Engine têm APIs compatíveis com multilocação de tarefas por meio do namespace. Este recurso não está disponível no Cloud Tasks.

  • Emulador local:

    O servidor de desenvolvimento local fornecido pelo SDK do Cloud ou pelo SDK do App Engine não é compatível com endpoints simulados para chamadas de API do Cloud Tasks.

  • Adicionar tarefas assíncronas:

    Os usuários do SDK do App Engine podem optar por adicionar tarefas a filas de forma assíncrona. Esse recurso não está disponível no Cloud Tasks.

Para saber mais

Guias mais detalhados para a migração de seu código podem ser encontrados no conjunto de documentação da Fila de tarefas do App Engine:

  • Como migrar de filas pull do Python 2.7 para o Pub/Sub
  • Como migrar de filas push do Python 2.7 para o Cloud Tasks
  • Como migrar de filas pull do Java 8 para o Pub/Sub
  • Como migrar de filas push do Java 8 para o Cloud Tasks