A Node.js background job system backed by Redis, featuring priority queues, delayed jobs, and API compatibility with Ruby's Resque.
Node-Resque is a Node.js background job processing library that uses Redis for storage and queue management. It allows developers to defer time-consuming tasks—like sending emails, processing uploads, or performing calculations—to asynchronous workers, freeing up the main application thread. The system supports priority queues, delayed jobs, job locking, automatic retries, and provides tools for monitoring and managing failed jobs.
Node.js developers building applications that require reliable, scalable background job processing, particularly those familiar with or migrating from Ruby's Resque or Sidekiq ecosystems.
Developers choose Node-Resque for its API compatibility with Ruby's Resque and Sidekiq, making it easy to adopt proven patterns in Node.js. It offers a comprehensive feature set including delayed jobs, plugins for job locking and retry, and a MultiWorker for auto-scaling, all backed by Redis for durability and performance.
Node.js Background jobs backed by redis.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Designed to be API-compatible with Ruby's Resque and Sidekiq, making it ideal for teams migrating from Ruby or adopting proven patterns in Node.js, as stated in the philosophy.
Includes priority queues, delayed jobs (via enqueueAt/enqueueIn), automatic retry, and built-in plugins like JobLock for preventing duplicate execution, providing a robust toolkit.
MultiWorker dynamically adjusts the number of workers based on event loop delay, optimizing resource usage and throughput for variable loads, as detailed in the configuration.
Emits detailed events throughout the job lifecycle (e.g., start, success, failure), enabling fine-grained monitoring and debugging, with examples in the README.
The entire job system depends on Redis; if Redis is unavailable, job processing halts, and there's no built-in redundancy or fallback mechanism, requiring careful infrastructure management.
For delayed jobs, the scheduler only guarantees when a job is enqueued, not when it will be executed, which can lead to unpredictable delays, as noted in the Scheduler section.
Requires careful configuration of Redis connections, worker pools, and error handling, with manual intervention needed for stuck workers and failed jobs, adding operational complexity.
node-resque is an open-source alternative to the following products: