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 | 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 |
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ón | Cloud Tasks | Pub/Sub |
|---|---|---|
| Enfoque del caso de uso | Garantizar la ejecución eventual de una tarea específica | Garantizar la entrega de mensajes a suscriptores desacoplados |
| Control principal | Configuració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 reintentos | Cantidad 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 intentos | Configurable de forma explícita | Indirectamente a través de la cantidad máxima de intentos de entrega de la DLQ |
| Ajuste de la retirada | Retirada mínima o máxima, y duplicaciones máximas | Retirada mínima o máxima para la política de retirada exponencial |
| Reintentos indefinidos | Es 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?
- Configura el enrutamiento, los límites y los reintentos de la cola
- Administra las colas y las tareas
- Cómo establecer parámetros de reintento para una tarea
- Anulación de duplicación de tareas