m.queue

2.0.2 • Public • Published

m.queue

m(icro)queue is a lightweight es6+ library that exports an asynchronous function queue with adjustable concurrency.

travis dependencies coverage status linter

node version license minzip downloads

.async

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)

.sequence

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)
})

queue.resume()

resumes worker execution

queue.pause()

pauses worker execution

queue.drain([callback])

sets concurrency to infinite and notifies when idle

queue.unshift([...args, callback]])

unshifts task to queue

queue.push([..args, callback])

pushes task to queue

queue.length

inherited from array, returns the queue length

queue.shift()

inherited from array

queue.pop()

inherited from array

Package Sidebar

Install

npm i m.queue

Weekly Downloads

3

Version

2.0.2

License

MIT

Unpacked Size

6.43 kB

Total Files

4

Last publish

Collaborators

  • ivoputzer