Escolha o Cloud Tasks ou o Pub/Sub

O Cloud Tasks e o Pub/Sub podem ser usados para implementar a transmissão de mensagens e a integração assíncrona, mas, embora funcionem de formas semelhantes, não são idênticos. Esta página ajuda a escolher o produto certo para o seu exemplo de utilização.

Principais diferenças

A principal diferença entre o Pub/Sub e o Cloud Tasks é a noção de invocação implícita vs. explícita.

O Pub/Sub tem como objetivo separar os publicadores de eventos e os subscritores desses eventos. Os publicadores não precisam de saber nada sobre os respetivos subscritores. Como resultado, o Pub/Sub não dá aos publicadores controlo sobre a entrega das mensagens, exceto a garantia de entrega. Desta forma, o Pub/Sub suporta a invocação implícita: um publicador faz com que os subscritores sejam executados implicitamente através da publicação de um evento.

Por outro lado, o Cloud Tasks destina-se à invocação explícita, em que o publicador mantém o controlo total da execução. Em particular, um publicador especifica um ponto final onde cada mensagem deve ser entregue.

Além disso, o Cloud Tasks oferece ferramentas para gestão de filas e tarefas indisponíveis para publicadores do Pub/Sub, incluindo:

  • Agendar horas de entrega específicas
  • Controlos da taxa de fornecimento
  • Voltas a tentar configuráveis
  • Acesso e gestão de tarefas individuais numa fila
  • Deduplicação da criação de tarefas/mensagens

Comparação detalhada de funcionalidades

Funcionalidade Cloud Tasks Cloud Pub/Sub
Envie através de webhooks Sim Sim
Garantia de entrega pelo menos uma vez Sim Sim
Voltas a tentar configuráveis Sim Sim
Deduplicação da criação de tarefas Sim Não
Envio agendado Sim Não
Entrega pedida Não. A ordem das tarefas na fila é preservada com base no melhor esforço. Sim, com teclas de ordenação
Controlos de taxa explícitos Sim Os clientes de subscrição de obtenção podem implementar o controlo de fluxo
Extraia através da API Não Sim
Inserção em lote Não Sim
Vários controladores/subscritores por mensagem Não Sim
Retenção de tarefas/mensagens 30 dias Até 31 dias
Tamanho máximo da tarefa/mensagem 1MB 10MB
Taxa de fornecimento máxima 500 qps/fila Sem limite superior
Disponibilidade geográfica Regional Global
Duração máxima do processamento do controlador/subscritor de envio 30 minutos (HTTP)
10 minutos (dimensionamento automático do App Engine Standard)
24 horas (dimensionamento manual ou básico do App Engine Standard)
60 minutos (App Engine Flexible)
10 minutos para operações push
Número de filas/subscrições por projeto 1000/projeto, mais disponível através do pedido de aumento da quota 10 000/projeto