A priority queue and consumer
Class representing a priority queue
Kind: global class
-
PriorityQueue
- new PriorityQueue([priorities])
-
.enqueue(entry, [priority]) ⇒
promise
-
.dequeue() ⇒
function
constructor - Create a priority queue
Param | Type | Default | Description |
---|---|---|---|
[priorities] | array |
[1, 2] |
An array of priority levels the queue should support from highest to lowest |
Example
const queue = new PriorityQueue();
enqueue - Enqueue a function
Kind: instance method of PriorityQueue
Returns: promise
- A promise that resolves with enqueued function
Param | Type | Default | Description |
---|---|---|---|
entry | function |
The function to enqueue | |
[priority] | number |
this.priorities[0] |
The priority of the function to enqueue |
Example
const queue = new PriorityQueue();
queue.enqueue(() => 'ayy', 2);
// → returns a promise that resolves with 'ayy'
dequeue - Dequeue the next item in the highest priority queue with items
Kind: instance method of PriorityQueue
Returns: function
- The dequeued function
Example
const queue = new PriorityQueue();
queue.enqueue(() => 'lmao', 2).then(result => console.log(result));
queue.dequeue()();
// → resolves the promise, logging 'lmao'
Class representing a queue consumer
Kind: global class
constructor - Create a queue consumer
Param | Type | Default | Description |
---|---|---|---|
queue | PriorityQueue |
The queue to consume | |
[delay] | number |
2500 |
The interval, in ms, to wait between dequeueing functions |
Example
const queue = new PriorityQueue();
const consumer = new QueueConsumer(queue, 86400000);
start - Start consuming the queue
Kind: instance method of QueueConsumer
stop - Stop consuming the queue
Kind: instance method of QueueConsumer
npm run test
npm run coverage
npm run lint
npm run readme
npm run compile
MIT @ Flip