Elegir Cloud Tasks o Pub/Sub

Cloud Tasks y Pub/Sub se pueden usar para implementar la transferencia de mensajes y la integración asíncrona, pero, aunque funcionan de forma similar, no son idénticos. Esta página te ayudará a elegir el producto adecuado para tu caso práctico.

Diferencias principales

La diferencia principal entre Pub/Sub y Cloud Tasks es el concepto de invocación implícita frente a explícita.

El objetivo de Pub/Sub es desacoplar a los editores de eventos y a los suscriptores de esos eventos. Los editores no tienen que saber nada sobre sus suscriptores. Por lo tanto, Pub/Sub no da a los editores ningún control sobre la entrega de los mensajes, salvo la garantía de entrega. De esta forma, Pub/Sub admite la invocación implícita: un editor provoca implícitamente que los suscriptores se ejecuten publicando un evento.

Por el contrario, Cloud Tasks está orientado a la invocación explícita, en la que el editor mantiene el control total de la ejecución. En concreto, un editor especifica un endpoint en el que se debe entregar cada mensaje.

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

  • Programar horas de entrega específicas
  • Controles de porcentaje de entrega
  • Reintentos configurables
  • Acceso y gestión de tareas concretas de una cola
  • Anulación de tareas o mensajes duplicados

Comparativa detallada de funciones

Función Cloud Tasks Cloud Pub/Sub
Enviar a través de webhooks
Garantía de entrega al menos una vez
Reintentos configurables
Anulación de tareas duplicadas No
Entrega programada No
Pedido a domicilio No. El orden de las tareas en cola se mantiene en la medida de lo posible. Sí, con claves de ordenación
Controles de tarifas explícitos Los clientes de suscriptor de extracción pueden implementar el control de flujo.
Extraer datos mediante una API No
Inserción por lotes No
Varios controladores o suscriptores por mensaje No
Retención de tareas o mensajes 30 días Hasta 31 días
Tamaño máximo de la tarea o el mensaje 1 MB 10 MB
Frecuencia de entrega máxima 500 qps por cola Sin límite superior
Disponibilidad geográfica Regional Global
Duración máxima del procesamiento del controlador o suscriptor de inserción 30 minutos (HTTP)
10 minutos (escalado automático de App Engine Standard)
24 horas (escalado manual o básico de App Engine Standard)
60 minutos (App Engine Flexible)
10 minutos para las operaciones de inserción
Número de colas o suscripciones por proyecto 1000 por proyecto. Se puede aumentar mediante una solicitud de aumento de cuota. 10.000 por proyecto