Skip to content

hattajun/node-blocking-queue

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blocking Queue

Bloking FIFO queue and flow control using Promise.

blocking-queue npm version

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.

About

Bloking FIFO queue and flow control using Promise.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 100.0%