Skip to content

Instantly share code, notes, and snippets.

@kevcenteno
Created April 10, 2014 18:10
Show Gist options
  • Save kevcenteno/10408154 to your computer and use it in GitHub Desktop.
Save kevcenteno/10408154 to your computer and use it in GitHub Desktop.
cluster.js
http = require('http');
fs = require('fs');
cluster = require('cluster');
numCPUs = require('os').cpus().length;
console.log(numCPUs);
blockWriter = {};
blockWriter.arr = [];
blockWriter.count = 0;
blockWriter.countLimit = 20;
blockWriter.blockLog = "";
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
});
} else {
server = http.createServer( function(req, res) {
if (req.method == 'POST') {
var body = '';
req.on('data', function (data) {
body += data;
});
req.on('end', function () {
blockWriter.arr.push(body);
blockWriter.count++;
if (blockWriter.count === blockWriter.countLimit) {
blockWriter.blockLog += blockWriter.arr.join('\n');
fs.appendFile('./log.txt', blockWriter.blockLog, function(error) {
if (error) console.log(error);
});
blockWriter.count = 0;
blockWriter.arr = [];
blockWriter.blockLog = "\n";
}
});
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('post received');
}
});
port = 3000;
host = '';
server.listen(port, host);
console.log('listening at http://' + host + ':' + port);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment