O Cloud Tasks e o Pub/Sub podem ser usados para implementar a transferência de mensagens e a integração assíncrona. Apesar de esses serviços funcionarem de maneira semelhante, eles não são idênticos. Nesta página, você encontra informações úteis para escolher o produto certo para seu caso de uso.
Principais diferenças
A principal diferença entre o Pub/Sub e o Cloud Tasks está na noção de invocação implícita versus explícita.
O Pub/Sub tem o objetivo de dissociar editores de eventos e os assinantes desses eventos. Os editores não precisam saber nada sobre os assinantes. Consequentemente, o Pub/Sub não oferece aos editores controle sobre a entrega das mensagens, apenas a garantia de entrega. Dessa forma, o Pub/Sub é compatível com invocação implícita: um editor faz com que os assinantes executem de maneira implícita publicando um evento.
Por outro lado, o Cloud Tasks tem como objetivo a invocação explícita em que o editor retém o controle total da execução. Um editor especifica um endpoint para que cada mensagem deve ser entregue.
Além disso, o Cloud Tasks fornece as seguintes ferramentas para o gerenciamento de tarefas e filas, que ficam indisponíveis para os editores do Pub/Sub:
- Programação de horários de entrega específicos
- Controles de taxa de entrega
- Tentativas configuráveis
- Acesso e gerenciamento de tarefas específicas em uma fila
- Eliminação de duplicação na criação de tarefas/mensagens
Comparação detalhada dos recursos
Recurso | Cloud Tasks | Cloud Pub/Sub |
---|---|---|
Push por meio de webhooks | Sim | Sim |
Garantia de no mínimo uma entrega | Sim | Sim |
Tentativas configuráveis | Sim | Sim |
Eliminação de duplicação na criação de tarefas | Sim | Não |
Entrega programada | Sim | Não |
Pedido para entrega | Não. A ordem das tarefas na fila é preservada com base no melhor esforço. | Sim, com chaves de pedido |
Controles de taxa explícita | Sim | Os clientes de assinante pull podem implementar controle de fluxo |
Pull por meio de API | Não | Sim |
Inserção de lote | Não | Sim |
Vários gerenciadores/assinantes por mensagem | Não | Sim |
Retenção de tarefa/mensagens | 30 dias | Até 31 dias |
Tamanho máximo da tarefa/mensagem | 1 MB | 10 MB |
Taxa de entrega máxima | 500 qps/fila | Nenhum limite superior |
Disponibilidade geográfica | Regional | Global |
Duração máxima de processamento do gerenciador de push/assinante | 30 minutos (HTTP) 10 minutos (escalonamento automático padrão do Google App Engine) 24 horas (escalonamento básico ou manual do App Engine Standard) 60 minutos (App Engine flexível) |
10 minutos para operações de push |
Número de filas/assinaturas por projeto | 1.000/projeto, mais disponível via solicitação de aumento de cota | 10.000/projeto |