@mdaemon/process-queue, A class for pushing objects to a queue and getting the next object from the queue to be processed
$ npm install @mdaemon/process-queue --save
const ProcessQueue = require("@mdaemon/process-queue/dist/processQueue.cjs");
import ProcessQueue from "@mdaemon/process-queue/dist/processQueue.mjs";
<script type="text/javascript" src="/path_to_modules/dist/processQueue.umd.js">
// Define your item type
interface MyQueueItem {
id: string | number;
// other properties...
}
// Create a new ProcessQueue
const queue = new ProcessQueue<MyQueueItem>();
const item: MyQueueItem = { id: '1', /* other properties */ };
const added = queue.queueItem(item);
console.log(added); // true if the item was added, false if it was already being processed
const nextItem = queue.getNextItem();
if (nextItem) {
// Process the item
// ...
// Mark it as done when finished
queue.doneProcessing(nextItem.id);
}
console.log(queue.length()); // Number of items in the queue
console.log(queue.busy()); // true if any items are being processed
console.log(queue.processSize()); // Number of items currently being processed
const removed = queue.removeFromQueue('itemId');
console.log(removed); // true if the item was removed, false if it wasn't in the queue
const allItems = queue.getQueue();
console.log(allItems); // Array of all items in the queue
queueItem(item: QueueItem): boolean: Adds an item to the queue.
getNextItem(): QueueItem | null: Retrieves and removes the next item from the queue.
isProcessing(id: ItemID): boolean: Checks if an item is currently being processed.
doneProcessing(id?: ItemID): void: Marks an item (or all items if no id is provided) as done processing.
removeFromQueue(id: ItemID): boolean: Removes an item from the queue.
length(prop?: string, val?: any): number: Returns the number of items in the queue, optionally filtered by a property value.
busy(): boolean: Checks if any items are currently being processed.
processSize(): number: Returns the number of items currently being processed.
getQueue(processing: boolean = false): QueueItem[]: Returns all items in the queue, optionally moving them to the processing state.
Published under the LGPL-2.1 license.
Published by
MDaemon Technologies, Ltd.
Simple Secure Email
https://www.mdaemon.com