Parallel task worker in Node.js

// Task worker in node.js
// Connects PULL socket to tcp://localhost:5557
// Collects workloads from ventilator via that socket
// Connects PUSH socket to tcp://localhost:5558
// Sends results to sink via that socket

var zmq = require('zmq')
, receiver = zmq.socket('pull')
, sender = zmq.socket('push');

receiver.on('message', function(buf) {
var msec = parseInt(buf.toString(), 10);

// simple progress indicator for the viewer
process.stdout.write(buf.toString() + ".");

// do the work
// not a great node sample for zeromq,
// node receives messages while timers run.
setTimeout(function() {
sender.send("");
}, msec);
});

receiver.connect('tcp://localhost:5557');
sender.connect('tcp://localhost:5558');

process.on('SIGINT', function() {
receiver.close();
sender.close();
process.exit();
});