A powerful, feature-rich queue library for Node.js with persistent storage, batch processing, prioritization, and task management.
Better Queue is a Node.js library for managing asynchronous task queues with advanced features like persistent storage, batch processing, and task prioritization. It solves the problem of coordinating and controlling the flow of tasks in applications that require reliable, ordered, or parallelized execution of jobs.
Node.js developers building applications that require robust task queuing, such as background job processors, file upload systems, data pipelines, or any system needing controlled asynchronous execution.
Developers choose Better Queue for its comprehensive feature set, extensible architecture, and simple API that handles complex queuing scenarios out-of-the-box while allowing fine-grained control through configuration options and custom stores.
Better Queue for NodeJS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports extendable backends like SQLite and PostgreSQL for task durability across restarts, as shown in the Storage section with configurable store options.
Allows configurable batch sizes, delays, and timeouts for efficient concurrent task handling, detailed in the Batch Processing and Timing sections of the README.
Features prioritization, merging, filtering, and progress tracking with ETA estimates, enabling complex workflows as demonstrated in the Task Management examples.
Custom stores can be implemented via a simple interface, and the library integrates with Webpack and TypeScript, offering adaptability for diverse environments.
Requires additional dependencies (e.g., sqlite3 or pg) and configuration for persistent storage, which can be cumbersome compared to lighter, memory-only queues.
Only memory, SQLite, and PostgreSQL are supported out-of-the-box; popular options like Redis or MongoDB need custom implementation, limiting immediate adoption.
Features like batch delays, progress tracking, and retry logic may introduce overhead for simple use cases, where a more minimal queue library could be faster.