m(icro)queue is a lightweight es6+ library that exports an asynchronous function queue with adjustable concurrency.
creates a queue
object with the specified concurrency
. tasks added to the queue are processed in parallel (up to the concurrency limit). if all workers
are in progress, the task is queued until one becomes available. once a worker
completes a task, that task's callback is called.
const {async} = require('m.queue')
const queue = async(function worker (arg0, arg1, callback) {
if (err) {
callback(err)
return
}
callback(null, arg0, arg1)
}, 10)
creates a queue
object. tasks added to the queue are processed sequentially. while the worker
is executing tasks will be queued. once a worker
completes a task, that task's callback is called.
const {sequence} = require('m.queue')
const queue = sequence(function worker (arg0, arg1, callback) {
if (err) {
callback(err)
return
}
callback(null, arg0, arg1)
})
resumes worker execution
pauses worker execution
sets concurrency to infinite and notifies when idle
unshifts task to queue
pushes task to queue
inherited from array, returns the queue length
inherited from array
inherited from array