pika-queue

PikaQueue provides a simple abstraction to managing job queues in redis.

npm install pika-queue
10 downloads in the last day
70 downloads in the last week
263 downloads in the last month

PikaQueue

PikaQueue provides a simple abstraction to managing job queues in redis.

There are two players involved in a job queue: a producer and a worker.

A producer is an entity that submits a job to a queue to be completed. The producer may or may not be interested in being notified of the completion and status of job submitted.

A worker in an entity that monitors a job queue, processes the job, and then sends a notification to any interested parties once the completed.

Example of a producer:

var producer = pikaQueue('reverse-string');

// Pass in a callback if you wish to receive notification when the job is complete.
producer.queueJob({ data: "Job Data" }, function(err, message) {
  // this callback is optional
  assert.equal(message.data, "ataD boJ");
});

Example of a worker:

// add a callback to make it a worker
pikaQueue('reverse-string', function(job, cb) {
  var rev = job.data.split('').reverse().join('');
  cb(null, { data: rev });
});

Safe Queues

PikaQueue allows for safe queues, which ensure work will be picked back up if a job never finishes.

pikaQueue(
  'safety-first',
  {
    safe: true, // jobs will be retried if they fail
    timeout: 30e3, // this is the max amount of time a job should take in milliseconds
    redis: { // you can also pass in a redis host
      port: 6379,
      host: 'localhost'
    }
  },
  function(job, cb) {
    if (Math.random() < 0.5) return;
    cb(null, 'this will run eventually');
  }
);
npm loves you