Elegir Pub/Sub o Cloud Tasks

Tanto Cloud Tasks como Pub/Sub se pueden usar para implementar la transferencia de mensajes y la integración asíncrona. Aunque son similares desde el punto de vista conceptual, cada una está diseñada para un conjunto de casos prácticos diferente. En esta página se explica cómo elegir el producto adecuado para tu caso práctico.

Diferencias principales

La diferencia principal entre Pub/Sub y Cloud Tasks es la noción de invocación implícita frente a la 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 ofrece 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 conserva el control total de la ejecución. En concreto, un editor especifica un endpoint en el que se debe entregar cada mensaje.

En general, Cloud Tasks es adecuado para casos prácticos en los que un productor de tareas necesita aplazar o controlar el tiempo de ejecución de una llamada a un webhook o a un procedimiento remoto específicos. Pub/Sub es óptimo para patrones de ingestión y distribución de datos de eventos más generales en los que se puede sacrificar cierto grado de control sobre la ejecución.

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 push
Número de colas o suscripciones por proyecto 1000 por proyecto, más disponibles mediante una solicitud de aumento de cuota 10.000 por proyecto