Registry / devops / waiting-queue

waiting-queue

JSON →
library1.0.7jsnpmunverified

A lightweight concurrency limiter and request queue for Node.js, version 1.0.7. It controls the number of concurrent requests to a processing module, buffering excess requests to prevent overload (e.g., handling user alarm clock requests at the hour). Key features: configurable concurrency, per-request acquire timeout, optional request deduplication via requestId, and promise-based API with fallback to callback. Unlike generic rate limiters, it focuses on queuing with timeout and deduplication.

npm install waiting-queue
INSTALL
IMPORT
SIG · WAITING-QUEUE
W
waiting-queue
devopsjavascriptv1.0.7
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.

WaitingQueue
✓ const { WaitingQueue } = require('waiting-queue');
✗ const WaitingQueue = require('waiting-queue');
The package exports an object with WaitingQueue property; do not use default import.
WaitingQueue
✓ import { WaitingQueue } from 'waiting-queue';
✗ import WaitingQueue from 'waiting-queue';
ESM import must use named import; default import will result in undefined.
WaitingQueue
✓ const queue = new WaitingQueue({ concurrent: 2 });
✗ const queue = new waiting-queue.WaitingQueue({ concurrent: 2 });
Instantiate directly; the class is available after import.

Creates a waiting queue with concurrency 2, adds 5 requests, logs results or errors.

const { WaitingQueue } = require('waiting-queue'); const queue = new WaitingQueue({ concurrent: 2, process: (request) => { return new Promise((resolve) => { setTimeout(() => resolve(request.id), 1000); }); } }); for (let i = 0; i < 5; i++) { queue.add({ id: i }, { waitTimeout: 5000 }) .then(result => console.log(`Request ${i} finished:`, result)) .catch(err => console.error(`Request ${i} error:`, err.message)); }
Debug
Known issues
gotchaIf request.process is provided, it overrides the global opt.process passed to constructor.
fix
Provide process function either globally or per-request, not both to avoid confusion.
affects: >=1.0.0
gotchaThe requestId option for deduplication only works after a request completes or fails; in-flight requests with same ID are not deduplicated.
fix
Ensure requestId is unique per logical operation; avoid reusing IDs for simultaneous requests.
affects: >=1.0.0
gotchaThe waitTimeout is applied per request from the time it enters the queue. If queue is long, early requests may timeout before processing.
fix
Set waitTimeout appropriately based on expected queue wait time; default is 5000ms.
affects: >=1.0.0
Upgrade
Version history
1.0.7latest on npm
Audit
Dependencies

No dependency data recorded yet.

Agent activity
14 hits · last 30 days
node
14
Resources
waiting-queue — npm install waiting-queue · libregistry