Elige Cloud Tasks o Pub/Sub

Cloud Tasks y Pub/Sub pueden usarse para implementar el envío de mensajes y la integración asíncrona, pero, si bien funcionan de manera similar, no son idénticos. Esta guía te ayudará a elegir el producto adecuado para tu caso de uso.

Diferencias clave

La principal diferencia entre Pub/Sub y Cloud Tasks es si usan la invocación implícita o explícita.

Pub/Sub separa a los publicadores de eventos de sus suscriptores. Los publicadores no necesitan información sobre sus suscriptores. Como resultado, Pub/Sub no ofrece control sobre la entrega de mensajes más allá de garantizarla. Esto admite la invocación implícita: un publicador activa la ejecución del suscriptor con solo publicar un evento.

Por el contrario, Cloud Tasks apunta a la invocación explícita. El publicador conserva el control total de la ejecución. En particular, un publicador especifica un extremo en el que se entregará cada mensaje.

Además, Cloud Tasks proporciona herramientas para la administración de colas y tareas que no están disponibles para los publicadores de Pub/Sub, incluidas las siguientes:

  • Programación de entrega específica
  • Controles de la tasa de publicación
  • Reintentos configurables precisos
  • Acceso y administración de tareas individuales en una cola
  • Anulación de duplicación de creación de tareas

Comparación detallada de características

Característica Cloud Tasks Pub/Sub
Envío mediante webhooks
Garantía de al menos una entrega
Reintentos configurables
Anulación de duplicación de creación de tareas o mensajes No
Entrega programada No
Entrega de pedido No, el orden de las tareas en cola se conserva de la mejor manera posible. Sí, con claves de ordenamiento
Controles explícitos de frecuencia Los clientes suscriptores de extracción pueden implementar el control de flujo.
Extracción con la API No
Inserción por lotes
Varios controladores/suscriptores por mensaje No
Retención de tareas/mensajes 31 días Hasta 31 días
Tamaño máximo de la tarea o el mensaje 1 MB 10 MB
Frecuencia máxima de envío 500 QPS por cola Sin límite superior, sujeto a las cuotas de capacidad de procesamiento regionales
Disponibilidad geográfica Regional Global
Duración máxima de procesamiento del controlador/suscriptor de envío 30 minutos (HTTP)
10 minutos (ajuste de escala automático estándar de App Engine)
24 horas (ajuste de escala manual o básico de entorno estándar de App Engine)
60 minutos (entorno flexible de App Engine)
10 minutos para operaciones de envío
Cantidad de colas o suscripciones 1,000 por proyecto y por región, con mayor disponibilidad a través de una solicitud de aumento de cuota 10,000 por proyecto

Diferencias de reintentos configurables

Cloud Tasks ofrece un control preciso de los reintentos de tareas, incluidos límites firmes en los intentos y la duración. Pub/Sub se enfoca en la entrega confiable y usa la retirada exponencial y las colas de mensajes no entregados (DLQ) para administrar los reintentos de mensajes no confirmados.

FunciónCloud Tasks Pub/Sub
Enfoque del caso de usoGarantizar la ejecución eventual de una tarea específica Garantizar la entrega de mensajes a suscriptores desacoplados
Control principalConfiguración de reintentos a nivel de la fila y la tarea Política de reintentos y DLQ a nivel de la suscripción
Cómo detener los reintentosCantidad máxima de intentos y duración máxima del reintento Confirmación de recepción de mensajes, vencimiento de mensajes o transferencia a DLQ
Cantidad máxima de intentosConfigurable de forma explícita Indirectamente a través de la cantidad máxima de intentos de entrega de la DLQ
Ajuste de la retiradaRetirada mínima o máxima, y duplicaciones máximas Retirada mínima o máxima para la política de retirada exponencial
Reintentos indefinidosEs posible si se configura, pero está limitado por el límite máximo de retención de tareas. Valor predeterminado para los mensajes no confirmados hasta el vencimiento, mitigado por la DLQ

¿Qué sigue?