BullMQ
Redis-based queue with repeatable jobs for Node.js
What is BullMQ?
BullMQ is a high-performance message queue and job scheduler for Node.js, built on Redis. It supports repeatable jobs that use cron expressions or fixed intervals, making it a full scheduling solution in addition to a job queue. BullMQ uses Redis Streams and sorted sets for reliable job storage and delivery, with built-in support for job priorities, rate limiting, concurrency control, and automatic retries with configurable backoff.
BullMQ is the successor to the popular Bull library and is designed for production-grade workloads. It supports job flows (parent-child dependencies), sandboxed processors that run in separate Node.js processes for isolation, and detailed event hooks for monitoring. The companion Bull Board package provides a web dashboard for visualizing queues and job states.
Best For
- Node.js applications that need both a job queue and periodic scheduling
- High-throughput systems requiring Redis-backed reliability and speed
- Workflows with job dependencies, priorities, and rate limiting
- Teams already using Redis who want scheduling without additional infrastructure
Limitations
- Requires Redis — adds operational complexity if not already in your stack
- Node.js-only for producers and consumers (though Redis is language-agnostic)
- Steeper learning curve compared to simple cron libraries
- Self-managed infrastructure means you handle Redis availability and monitoring
BullMQ vs CronJobPro
BullMQ is an excellent choice for Node.js applications that need both queuing and scheduling, offering features like job dependencies and rate limiting that go beyond simple cron. However, it requires managing Redis infrastructure and monitoring the queue consumers. CronJobPro provides scheduling as a fully managed service — no Redis, no queue consumers, no infrastructure to maintain. For HTTP-triggered scheduled tasks, CronJobPro is significantly simpler to operate.
Official Website
https://docs.bullmq.io/Frequently Asked Questions
What is BullMQ?
BullMQ is a high-performance message queue and job scheduler for Node.js, built on Redis. It supports repeatable jobs that use cron expressions or fixed intervals, making it a full scheduling solution in addition to a job queue. BullMQ uses Redis Streams and sorted sets for reliable job storage and delivery, with built-in support for job priorities, rate limiting, concurrency control, and automatic retries with configurable backoff.
What is BullMQ best for?
Node.js applications that need both a job queue and periodic scheduling. High-throughput systems requiring Redis-backed reliability and speed. Workflows with job dependencies, priorities, and rate limiting. Teams already using Redis who want scheduling without additional infrastructure.
How does BullMQ compare to an external cron service?
BullMQ is an excellent choice for Node.js applications that need both queuing and scheduling, offering features like job dependencies and rate limiting that go beyond simple cron. However, it requires managing Redis infrastructure and monitoring the queue consumers. CronJobPro provides scheduling as a fully managed service — no Redis, no queue consumers, no infrastructure to maintain. For HTTP-triggered scheduled tasks, CronJobPro is significantly simpler to operate.
Related Alternatives
Try CronJobPro for Free
Schedule HTTP requests with monitoring, retries, and alerts — no infrastructure needed.
Get started free →