浏览代码

Add clustering bin

Connor Peet 10 年之前
父节点
当前提交
4923b8ed58
共有 2 个文件被更改,包括 28 次插入3 次删除
  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);
+}