Cloud Tasks y Pub/Sub pueden usarse para implementar el envío de mensajes y la integración asíncrona. Aunque sean similares desde una perspectiva conceptual, están diseñados para diferentes casos prácticos. En esta página, encontrarás ayuda para elegir el producto correcto para tu caso de uso.
Diferencias clave
La diferencia principal entre Cloud Tasks y Pub/Sub es la noción de invocación implícita o explícita.
Pub/Sub tiene como objetivo separar a los publicadores de eventos y a quienes se suscriben a ellos. Los publicadores no necesitan información sobre sus suscriptores. Por lo tanto, Pub/Sub no otorga control a los publicadores sobre la entrega de los mensajes, excepto la garantía de envío. De esta manera, Pub/Sub admite la invocación implícita: un publicador ocasiona, de forma implícita, que los suscriptores se ejecuten cuando publica un evento.
Por el contrario, Cloud Tasks se centra en la invocación explícita, en la que el publicador posee el control total de la ejecución. En particular, un publicador especifica un extremo en el que se entregará cada mensaje.
Por lo general, las Cloud Tasks son apropiadas para casos prácticos en los que un productor de tareas necesita diferir o controlar el tiempo de ejecución de un webhook específico o una llamada de procedimiento remoto. Pub/Sub es óptimo para patrones más generales de distribución y transferencia de datos de eventos en los que se puede prescindir de cierto grado de control sobre la ejecución.
Comparación detallada de características
| Característica | Cloud Tasks | Pub/Sub |
|---|---|---|
| Envío mediante webhooks | Sí | Sí |
| Garantía de al menos una entrega | Sí | Sí |
| Reintentos configurables | Sí | Sí |
| Anulación de duplicación de creación de tareas o mensajes | Sí | No |
| Entrega programada | Sí | 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 | Sí | Los clientes suscriptores de extracción pueden implementar el control de flujo. |
| Extracción con la API | No | Sí |
| Inserción por lotes | Sí | Sí |
| Varios controladores/suscriptores por mensaje | No | Sí |
| 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 |