pace-yourself
v1.0.5
Published
A priority queue and consumer
Downloads
7
Readme
pace-yourself
A priority queue and consumer
PriorityQueue
Class representing a priority queue
Kind: global class
- PriorityQueue
- new PriorityQueue([priorities])
- .enqueue(entry, [priority]) ⇒ promise
- .dequeue() ⇒ function
new PriorityQueue([priorities])
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();
priorityQueue.enqueue(entry, [priority]) ⇒ promise
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'
priorityQueue.dequeue() ⇒ function
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'
QueueConsumer
Class representing a queue consumer
Kind: global class
new QueueConsumer(queue, [delay])
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);
queueConsumer.start()
start - Start consuming the queue
Kind: instance method of QueueConsumer
queueConsumer.stop()
stop - Stop consuming the queue
Kind: instance method of QueueConsumer
Scripts
test
– run the tests
npm run test
coverage
– generate and view code coverage as HTML
npm run coverage
lint
– lint the codebase
npm run lint
readme
– generate the README
npm run readme
compile
– compile the code
npm run compile
License
MIT @ Flip