~/VibeHandbook
PDF gratis

Capítulo 14 · 07

Colas

Una te permite decir "haz esto después" en lugar de "haz esto ahora." Cuando un usuario se registra, no quieres que espere mientras envías un correo de bienvenida y redimensionas su avatar. Empuja esos trabajos a una cola (RabbitMQ, BullMQ, Cloudflare Queues, SQS); un trabajador en segundo plano los recoge. El usuario obtiene una respuesta instantánea.

Usa una cola para cualquier tarea que sea lenta, que pueda fallar y reintentarse, o que no necesite terminar antes de responder al usuario.

El problema con el que tropiezan la mayoría de los principiantes es que un trabajo en cola puede ejecutarse más de una vez: un fallo de red hace que el trabajador reintente, y ahora el correo de bienvenida se envía dos veces. La solución es hacer que los trabajos sean idempotentes: diseñarlos de modo que ejecutar el mismo trabajo dos veces tenga el mismo efecto que ejecutarlo una vez (comprobar "¿ya envié esto?" antes de enviar). También decide de antemano qué pasa con un trabajo que sigue fallando; las colas maduras lo enrutan a una cola de mensajes muertos (dead-letter queue) para que un mensaje envenenado no bloquee todo lo que va detrás.

¿Lo quieres sin conexión?

Descarga el libro entero en PDF o EPUB — gratis.