Kue is a priority job queue backed by Redis for Node.js, featuring delayed jobs, parallel workload distribution, job event and progress pubsub, job TTL, optional retries with backoff, graceful shutdown, full-text search, RESTful JSON API, and a rich integrated UI. Current stable version is 0.11.6, released irregularly with maintenance updates. Key differentiators include a built-in UI for monitoring, priority system with named levels, and support for job progress tracking and logging. Compared to Bull or Bee-Queue, Kue offers more out-of-the-box UI features but is less actively maintained.
npm install kueNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Shows how to create a queue, enqueue a high-priority email job, process it, and gracefully shutdown on SIGTERM.
Use queue.createQueue({redis: {host: 'localhost', port: 6379}}) instead of passing to kue.createQueue({redis: ...}).Use queue.on('job complete', ...) or job.on('complete', ...) but prefer queue-level.Use queue.shutdown(5000, 'work', callback) where type can be 'work' or 'jobs'.
Ensure Redis server is running and accessible before creating a queue.
Keep job data small; store large data externally (e.g., file or database) and reference by ID.
Always specify concurrency: queue.process('email', 5, handler).Start Redis: redis-server, or configure custom Redis connection: kue.createQueue({redis: {host: 'myhost', port: 6380}}).Ensure you use queue.create(type, data) which returns a Job instance: const job = queue.create('email', {}); job.save(cb);Chain priority before save: queue.create('email', {}).priority('high').save(cb);Check Redis host configuration: kue.createQueue({redis: {host: 'correct-host'}}); ensure network connectivity.Define processing for each job type only once; remove duplicate queue.process('email', ...) calls.