Cron jobs y schedulers con BullMQ en Node.js

Aprende a programar tareas recurrentes con BullMQ y Redis en Node.js. Incluye cron, schedulers, NestJS y buenas prácticas para producción.

5 jul 2026 • 3 min de lectura • Equip Q2BSTUDIO

Schedulers y cron con BullMQ: alternativa robusta

En el desarrollo de aplicaciones modernas con Node.js, la ejecución de tareas programadas es un requisito habitual que puede abordarse de múltiples formas. Mientras que soluciones como node-cron o @nestjs/schedule funcionan correctamente en entornos de una sola instancia, presentan limitaciones cuando se necesita resiliencia ante reinicios, deduplicación entre réplicas o integración con otros procesos asíncronos. Aquí es donde BullMQ se posiciona como una alternativa sólida, apoyándose en Redis para gestionar colas y schedulers de forma centralizada.

BullMQ ofrece los denominados Job Schedulers, que permiten encolar trabajos recurrentes siguiendo patrones cron o intervalos fijos. A diferencia de los temporizadores en proceso, estos schedulers persisten en Redis, sobreviven a caídas del servidor y son compartidos por múltiples workers. Además, heredan las capacidades de reintentos, backoff y concurrencia que BullMQ proporciona para trabajos puntuales. Esto convierte a los schedulers en una pieza clave para arquitecturas escalables, donde se requiere que el mismo worker procese tanto tareas periódicas como trabajos bajo demanda.

La implementación en Node.js es directa: se crea una cola y un worker compartiendo una conexión a Redis, y se registra el scheduler mediante el método upsertJobScheduler. Por ejemplo, un patrón como */10 * * * * * genera un heartbeat cada diez segundos, mientras que un cron con huso horario específico permite ejecutar limpiezas diarias a las 03:15 hora local. Es fundamental recordar que el worker debe estar activo para consumir los trabajos; de lo contrario, se acumularán en Redis. También es importante evitar la opción repeat obsoleta en favor de la API de schedulers introducida en BullMQ 5.16+.

En el ecosistema NestJS, la integración se simplifica gracias al módulo @nestjs/bullmq. Se configura una conexión Redis global, se registra la cola como proveedor y se inyecta en un servicio que implementa OnModuleInit para upsertar los schedulers al arrancar la aplicación. Los trabajadores se definen como clases decoradas con @Processor, heredando de WorkerHost. Este patrón garantiza que cada despliegue actualice los schedulers existentes sin duplicarlos, manteniendo la identidad estable mediante un identificador único.

Entre las mejores prácticas operativas destacan: cerrar correctamente el worker y la cola en señales SIGINT/SIGTERM, utilizar getJobSchedulers para inspeccionar los schedulers activos, y emplear removeJobScheduler para eliminar programaciones obsoletas. Es crucial no mezclar pattern y every en un mismo scheduler, y especificar el huso horario cuando la hora local es relevante. Asimismo, bajo cargas elevadas los intervalos pueden alargarse porque BullMQ programa el siguiente trabajo solo cuando el anterior comienza a procesarse.

En entornos empresariales, combinar BullMQ con servicios cloud como AWS o Azure potencia la escalabilidad y la resiliencia. Por ejemplo, alojar Redis en ElastiCache o Azure Cache for Redis, y desplegar los workers en contenedores orquestados, permite manejar picos de carga sin perder trabajos programados. En Q2BSTUDIO desarrollamos aplicaciones a medida que integran estos patrones, ofreciendo soluciones robustas para automatización de procesos y gestión de tareas críticas. Además, nuestras capacidades abarcan automatización de procesos con colas de mensajes, inteligencia artificial para empresas, agentes IA, ciberseguridad, y servicios inteligencia de negocio con Power BI, todo sobre infraestructuras cloud AWS y Azure.

En resumen, BullMQ Job Schedulers representan una evolución natural frente a los temporizadores en proceso cuando se requiere fiabilidad, concurrencia y observabilidad. Su uso es especialmente recomendado en arquitecturas multi-instancia y en combinación con otros sistemas de colas. Desde Q2BSTUDIO, acompañamos a las organizaciones en la implementación de estas tecnologías, así como en el desarrollo de software a medida que integra schedulers, cloud, IA y business intelligence para impulsar la transformación digital.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.