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 | Sí | Sí |
Garantía de entrega al menos una vez | Sí | Sí |
Reintentos configurables | Sí | Sí |
Anulación de tareas duplicadas | Sí | No |
Entrega programada | Sí | 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 | Sí | Los clientes de suscriptor de extracción pueden implementar el control de flujo. |
Extraer datos mediante una API | No | Sí |
Inserción por lotes | No | Sí |
Varios controladores o suscriptores por mensaje | No | Sí |
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 |