fifo-queue

0.0.3 • Public • Published

fifo-queue is an fifo queueing tasks managaer.

Installation

npm install fifo-queue

Basic usage

'use strict';
 
var fifoqueue = require('../fifo-queue'),
    results = [];
 
fifoqueue.settings('concurency', 1)
  .register(
    'echo-task',
    'echo message',
    {message: 'string'})
  .queue('echo-task', {
    options: {message: 'first task'},
    onStart: function() {
      console.log('first task started');
    },
    onEnd: function(err, res) {
      results.push(res.toString());
    }
  })
  .queue('echo-task', {
    options: {message: 'second task'},
    onEnd: function(err, res) {
      results.push(res.toString());
    }
  })
  .queue('echo-task', {
    options: {message: 'third task'},
    onEnd: function(err, res) {
      results.push(res.toString());
      console.log(results);
      fifoqueue.stop();
    }
  })
  .start();
 
>>> [ 'first task\r\n', 'second task\r\n', 'third task\r\n' ]

Settings

concurency

Define how many processes can be executed together.

Infinity by default. It can be set to any strictly positive number.

interval

Define time (ms) between two refresh of the pending queue.

hisotry

Define number of runned task keeped in memory, default to 0.

API

settings

fifoqueue.settings('interval', 20);
 
fifoqueue.settings('interval');
>>> 20
 
fifoqueue.settings({
  'interval': 20,
  'concurency': 2,
  'history': 10
  });
 
fifoqueue.settings();
>>> {
>>>   'interval': 20,
>>>   'concurency': 2,
>>>   'history': 10
>>> }

Register task

if (!fifoqueue.taskExists('coucou')) {
  fifoqueue.register(
    'coucou',
    'echo coucou'
    );
}

Queue tasks (and start execution)

fifoqueue.queue('coucou');
fifoqueue.queue('coucou', {
    onStart: function() {
      console.log('start : coucou');
    },
    onEnd: function() {
      console.log('end : coucou');
    }
  });
 
fifoqueue.start();

Access queues

fifoqueue.queue('coucou');
fifoqueue.queue('coucou');
fifoqueue.queue('coucou');
 
fifoqueue.pending.length;
>>> 3
 
fifoqueue.running.length;
>>> 0
 
fifoqueue.history.length;
>>> 2

Contribution

Please feel free to contribute by forking this repo. Just be sure to add relevant unit tests and pass them all before submitting any code.

To setup the project, just install npm dependencies with npm install and run tests with npm test.

License

MIT

Package Sidebar

Install

npm i fifo-queue

Weekly Downloads

0

Version

0.0.3

License

MIT

Last publish

Collaborators

  • aileo