Ver Fonte

Add clustering bin

Connor Peet há 10 anos atrás
pai
commit
4923b8ed58
2 ficheiros alterados com 28 adições e 3 exclusões
  1. 19 0
      bin/www.js
  2. 9 3
      server.js

+ 19 - 0
bin/www.js

@@ -0,0 +1,19 @@
+var cluster = require('cluster');
+var cleaner = require('../modules/cleaner');
+var config = require('../modules/config');
+
+if (cluster.isMaster) {
+    var cores = require("os").cpus().length;
+    for (var i = cores; i > 0; i--) {
+        cluster.fork();
+    }
+
+    cluster.on('exit', function (worker, code, signal) {
+        console.error('Worker died. Rebooting a new one.');
+        setTimeout(cluster.fork, 100);
+    });
+
+    setInterval(cleaner.run, config.cleaning_interval * 1000);
+} else {
+    require('../server.js')();
+}

+ 9 - 3
server.js

@@ -92,7 +92,13 @@ function requestHandler(req, res) {
   }
 }
 
-http.createServer(requestHandler).listen(process.env.PORT || 3000);
+var boot = module.exports = function () {
+  http.createServer(requestHandler).listen(process.env.PORT || 3000);
+};
+
+if (require.main === module) {
+  boot();
 
-// cleaning worker
-setInterval(clean.run, config.cleaning_interval * 1000);
+  // cleaning worker
+  setInterval(clean.run, config.cleaning_interval * 1000);
+}