Skip to content
/ m.queue Public
forked from ivoputzer/m.queue

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

Notifications You must be signed in to change notification settings

matpil/m.queue

 
 

Repository files navigation

m.queue

ci dependencies style coverage quality node version license

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

.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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%