blocking-queue

0.0.1 • Public • Published

Blocking Queue

Bloking FIFO queue and flow control using Promise.

Installation

npm install blocking-queue

Example

var Queue = require('blocking-queue');
var QueueConsumer = require('blocking-queue').QueueConsumer;
 
var q = new Queue();
q.push('task1');
q.push('task2');
q.push('task3');
q.push('task4');
q.push('task5');
 
var c = new QueueConsumer(q);
c.start(function(task){
  return new Promise(function(resolve, reject){
    // working on task
    resolve();
  });
}, 2);
 
c.end().then(function(){
  // on all tasks done
});

API

new Queue()

Queue.push(task)

  • task {Object} required

Queue.pop()

  • return {Promise}

Queue.size()

  • return {integer}

new QueueConsumer(queue)

  • queue {Queue} required

QueueConsumer.start(consumer, [concurrency])

  • consumer {Function} required should be called with 1 parameters: task.
  • cocurrency {integer} optional, default: 1

QueueConsumer.end()

  • return {Promise}

License

MIT.

Readme

Keywords

none

Package Sidebar

Install

npm i blocking-queue

Weekly Downloads

1,173

Version

0.0.1

License

MIT

Last publish

Collaborators

  • abehiroshi