Distributed work-queue for nodejs
$ npm install mr-wolf
Place your work in the default /jobs-directory. Note that you can change the location of this directory using
mrWolf.setJobDirectory('./some/other/place');
example: /jobs/sendEmail.js
module.exports = {
//A job must implement the receive-method that takes two parameters
//meta : the meta-data sent to the job
//callback : a callback with one parameter : error (if any)
receive : function(meta, callback) {
sendEmail(meta.recipient, meta.title, meta.body, function(err) {
callback(err);
});
}
};
var mrWolf = require('mr-wolf');
//Push takes two arguments,
//the job-name (should be equivalent to the fileName mentioned in create a job)
//and the meta-data, which will also be supplied to the job.
mrWolf.enqueue('sendEmail', {
recipient : "mr.recipient@coolmail.com",
title : 'Hello mr!',
body : 'Its a fifteen minute drive, I\'ll be there in five'
});
Note that starting mr-wolf on many servers lets them share the work-load and process the queue faster.
Here's how you get start it up:
mrWolf.start({
//Add some listeners (optional)
onError : function(job, error) { },
onStart : function(job) { },
onComplete : function(job) { },
onEnqueue : function(job) { }
});