Registry / messaging / queue-worker

queue-worker

JSON →
library2.1.0jsnpmunverified

A RabbitMQ queue worker library for Node.js, version 2.1.0. Simplifies setting up job queues with configurable concurrency (jobsCount), retry attempts (attemptsCount), and delayed retries (attemptDelays). Supports custom success, fail, and error event handlers. Requires RabbitMQ and the 'rabbit-queue' package with scheduledPublish flag enabled. Differentiated by built-in attempt delay management and TypeScript type definitions.

npm install queue-worker
INSTALL
IMPORT
SIG · QUEUE-WORKER
Q
queue-worker
messagingjavascriptv2.1.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

QueueWorker
import { QueueWorker } from 'queue-worker'
const { QueueWorker } = require('queue-worker')
Library is ESM-only; CommonJS require will fail.
Rabbit
import { Rabbit } from 'rabbit-queue'
const Rabbit = require('rabbit-queue').default
Rabbit is a named export from 'rabbit-queue' package.
QueueWorker type parameters
const worker = new QueueWorker<Message, Exception, Result>(rabbit, queueName, options)
const worker = new QueueWorker(rabbit, queueName, options)
Type parameters specify the message type, exception type, and result type. Omitting them loses type safety.

Creates a RabbitMQ queue worker with typed messages, failure handling, and retry delays.

import { Rabbit } from 'rabbit-queue'; import { QueueWorker } from 'queue-worker'; const URL = process.env.RABBIT_URL ?? 'amqp://localhost'; const rabbit = new Rabbit(URL, { scheduledPublish: true }); type Message = { text: string }; type Exception = Error; type Result = { ok: boolean }; const worker = new QueueWorker<Message, Exception, Result>(rabbit, 'my-queue', { jobsCount: 5, attemptsCount: 3, attemptDelays: ['0', '1 min', '5 min'], }); worker.handle(async ({ message }) => { console.log(`Processing: ${message.text}`); return { ok: true }; }); worker.on('success', (data: Message, result: Result) => { console.log('Success:', data, result); }); worker.on('fail', (data: Message, error: Exception) => { console.error('Attempt failed:', data, error); }); worker.on('error', (data: Message, errors: Exception[]) => { console.error('All attempts failed:', data, errors); }); worker.addItem({ text: 'hello' }); // Or with custom delay worker.addItem({ text: 'delayed' }, { attemptsCount: 1, attemptDelays: ['10 min'] });
Debug
Known issues
breakingRequires RabbitMQ instance and 'rabbit-queue' package with scheduledPublish: true
fix
Ensure RabbitMQ is running and install 'rabbit-queue' as a peer dependency: npm install rabbit-queue. Initialize Rabbit with { scheduledPublish: true }.
affects: >=1.0.0
gotchaattemptDelays array length determines retry schedule; if attempt index exceeds array length, last delay is reused.
fix
Set attemptDelays to cover all attempts or ensure the last element is a catch-all delay.
affects: >=1.0.0
gotchaQueue name must match an existing RabbitMQ queue or be created externally.
fix
Define the queue in RabbitMQ (e.g., via management UI or channel.assertQueue) before using queue-worker.
affects: >=1.0.0
breakingTypeScript types are included, but incorrect generic usage may cause runtime errors.
fix
Always provide three type parameters: Message, Exception, and Result.
affects: >=2.0.0
Errors
Common errors & fixes
Cannot find module 'queue-worker'
Package not installed or import path wrong.
fix
Run 'npm install queue-worker' and ensure import is 'import { QueueWorker } from 'queue-worker'
TypeError: Rabbit is not a constructor
Rabbit imported incorrectly, or 'rabbit-queue' package missing.
fix
Install rabbit-queue: 'npm install rabbit-queue'. Import as: 'import { Rabbit } from 'rabbit-queue'
Missing required peer dependency: rabbit-queue
rabbit-queue not installed.
fix
Install rabbit-queue: 'npm install rabbit-queue'
Upgrade
Version history
2.1.0latest on npm
Audit
Dependencies
rabbit-queuerequiredRequired peer dependency for RabbitMQ connection and message scheduling.
Agent activity
12 hits · last 30 days
node
10
Amazon
1
OpenAI (training)
1
Resources
queue-worker — npm install queue-worker · libregistry