Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express');
  2. var cluster = require("cluster");
  3. var os = require("os");
  4. var http = require("http");
  5. var argv = require('optimist').argv;
  6.  
  7. var numReqs = 0;
  8. // port wg argumantu -p, jesli nie istnieje, domyslnie 8000
  9. var port = argv.p || 8000;
  10.  
  11. var app = express();
  12.  
  13. // middleware, do zliczania liczby requestow
  14. // wykonywane przed nizej wymienionymi metodami (KOLEJNOSC MA ZNACZENIE!)
  15. app.use(function(req, res, next) {
  16.   //console.log('%s %s', req.method, req.url);
  17.   process.send({ cmd: 'notifyRequest' });
  18.   next();
  19. });
  20.  
  21. app.get('/', function(req,res){
  22.     res.send("Hello World!");
  23. });
  24.  
  25. app.get('/test', function(req,res){
  26.     res.send("test");
  27. });
  28.  
  29.  
  30. // obsluga servera
  31. if (cluster.isMaster) {
  32.     console.log("CPUS: " + os.cpus().length);
  33.     for (var i = 0; i < os.cpus().length; i++) {
  34.         var worker = cluster.fork();
  35.  
  36.         worker.on('message', function(msg) {
  37.             if (msg.cmd && msg.cmd == 'notifyRequest') {
  38.                 numReqs++;
  39.             }
  40.         });
  41.     }
  42.     setInterval(function() {
  43.         console.log("numReqs =", numReqs);
  44.     }, 1000);
  45.  
  46.     cluster.on('death', function(worker) {
  47.         console.log('worker ' + worker.pid + ' died, restarting...');
  48.         cluster.fork();
  49.     });
  50. } else {
  51.     app.listen(port, function() {
  52.         console.log('Listening on port %d', port);
  53.     });
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement