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 |