Node-RQueue is a simple Redis based message queue for communicating between multiple platforms.
It uses a easy to implement message paradigm within Redis lists.
An example message:
{id: UUID, payload: 'JSON DATA', errors: ['HTTP 404'], error_count: 1 } Messages are put onto the list with rpush, then the client listens for messages with the blpop command.
queue-server.js:
// Require the node-rqueue var client = require('./node-rqueue'); // Create the Queue with a redis server listening on localhost:6379 var user_queue = new client.Queue({name: 'user', host: 'localhost', port: 6379 }); // Add a job to the queue. user_queue.push('Any JSON.strinify-able data goes in this parameter', function (error, id){// Handle errors if (error) throw error; // Second parameter is the message/job id. }); queue-worker.js:
// Require the node-rqueue var client = require('./node-rqueue'); // Create a worker for each queue. var worker = client.createWorker({name: 'user', host: 'localhost', port: 6379 }); // Setup message event worker.on('message', function (job){// Process message process(job.payload); // Listen for next job worker.next()}); // Start listening. worker.start();