Skip to content

gideonairex/disqueue-node

Repository files navigation

disqueue-node client

Build StatusDependency StatusCode ClimateStories in Ready

This is a Disqueue client using node.js.

Setup

Install Disque

How to use

Connect to disqueue then you can use the connected disqueue( examples )

Options

var options = {
 'host' : <host>, // defaults to '127.0.0.1'
 'port' : <port>, // defaults to 7777
 'auth' : {
  'password' : 'gideonairex'
 },
 'retryMax'   : <count>, // defaults to 5
 'retryCount' : <ms>     // defaults to 200 ms
};

var disqueue = new Disqueue( options );

API

ACKJOB

disqueue.ackJob( <ARRAY of IDS|STRING of the ID>, callback );

ADDJOB

disqueue.addJob( {
 'queue'     : <queue>,
 'job'       : <job>,
 'timeout'   : <ms-seconds>, // optional defaults to 0
 'replicate' : <count>,      // optional
 'delay'     : <seconds>,    // optional
 'retry'     : <seconds>,    // optional
 'ttl'       : <seconds>,    // optional
 'maxlen'    : <count>,      // optional
 'async'     : <true>        // optional defaults to false
}, callback )

AUTH

disqueue.auth( {
	'password' : <password>
}. callback );

DEL

disqueue.delJob( <ARRAY of IDS|STRING of the ID>, callback );

DEQUEUE

disqueue.dequeue( <ARRAY of IDS|STRING of the ID>, callback );

ENQUEUE

disqueue.enqueue( <ARRAY of IDS|STRING of the ID>, callback );

FASTACK

disqueue.fastAck( <ARRAY of IDS|STRING of the ID>, callback );

GETJOB

disqueue.getJob( {
 'queue'        : <queue>, // can be a string or an array of queues
 'count'        : <count>,
 'withcounters' : <true>,  // optional defaults to false
 'nohang'       : <true>   // optional defaults to false
}, callback )

HELLO

disqueue.hello( {}, callback );

INFO

disqueue.info( {}, callback );

NACK

disqueue.nack( <ARRAY of IDS|STRING of the ID>, callback );

QLEN

disqueue.qlen( <queue-name>, callback );

QSCAN

disqueue.qscan( {
  'count'      : int,  // optional
  'busyloop'   : true, // optional defaults to false
  'maxlen'     : int,  // optional
  'minlen'     : int,  // optional
  'importrate' : int   // optional
}, callback )

SHOW

disqueue.show( <job-id>, callback );

WORKING

disqueue.working( <job-id>, callback );

Authentication

To connect to disque just add password

var options = {
 'auth' : {
  'password' : 'gideonairex'
 }
};
var disqueue = new Disqueue( options );

diqueue.on( 'connected', function () {} );

Or you just add options and use the default port and host

var options = {
 'host' : '127.0.0.1',
 'port' : 7777,
 'auth' : {
  'password' : 'gideonairex'
 }
};
var disqueue = new Disqueue( options );

diqueue.on( 'connected', function () {} );

Usage

var Disqueue = require( 'disqueue-node' );
var disqueue = new Disqueue();
diqueue.on( 'connected', function () {
 disqueue.addJob( {
  'queue' : 'test',
  'job'   : 'hello world'
 }, function ( error, addJobResult ) {
 } );
} );

Test

npm test
npm run lint

Todo

  1. Complete all commands
  2. Benchmark