Contáctanos
Webflow Premium Partner Ehab Fayez
Volver a Agent Skills
Datos y Analítica

Redis Queue (BullMQ)

Construye colas de trabajo fiables y workers en segundo plano con BullMQ, impulsado por Redis para procesamiento distribuido.

Claude Code Cursor Copilot Windsurf

Descripción General

BullMQ es una librería robusta y rica en funcionalidades de colas de trabajo para Node.js construida sobre Redis. Proporciona procesamiento fiable de mensajes con semántica de entrega al menos una vez, asegurando que los trabajos nunca se pierdan incluso si los workers fallan. BullMQ soporta trabajos retrasados, trabajos repetibles (cron), prioridades de trabajo, limitación de velocidad y orquestación de flujos de trabajo complejos con relaciones padre-hijo entre trabajos.

La librería utiliza Redis Streams y scripts Lua para operaciones atómicas, proporcionando garantías sólidas sobre el orden de procesamiento y la finalización de trabajos. Los workers pueden procesar trabajos concurrentemente con límites de concurrencia configurables, y los trabajos fallidos se reintentan automáticamente con retroceso exponencial. El sistema de eventos proporciona visibilidad en tiempo real de los cambios de estado de la cola, el progreso de los trabajos y la salud de los workers.

BullMQ es el sucesor de Bull y proporciona mejoras significativas incluyendo soporte para flujos (pipelines de trabajo multi-paso), procesadores aislados para ejecución aislada de trabajos y eventos globales. La librería incluye una interfaz de dashboard (Bull Board) para monitorear colas, y se integra con OpenTelemetry para trazabilidad distribuida. Se usa ampliamente para envío de emails, procesamiento de imágenes, pipelines de datos y entrega de webhooks.

¿Para Quién Es?

  • Procesar trabajos de envío de emails en segundo plano
  • Construir pipelines de procesamiento de imágenes/video con pools de workers
  • Programar tareas recurrentes como generación de informes
  • Implementar entrega de webhooks con lógica de reintento

Instalación

Configurar Claude Code
npm install bullmq

Configuración

import { Queue, Worker } from "bullmq"

const emailQueue = new Queue("emails", {
  connection: { host: "localhost", port: 6379 },
})

// Add a job
await emailQueue.add("welcome-email", {
  to: "user@example.com",
  subject: "Welcome!",
})

// Process jobs
const worker = new Worker("emails", async (job) => {
  await sendEmail(job.data)
}, { connection: { host: "localhost", port: 6379 }, concurrency: 5 })