-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path6_cluster.js
More file actions
35 lines (29 loc) · 872 Bytes
/
6_cluster.js
File metadata and controls
35 lines (29 loc) · 872 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++)
{
cluster.fork();
}
console.log("created " + numCPUs + " workers");
cluster.on('death', function(worker)
{
console.log('worker ' + worker.pid + ' died');
cluster.fork(); //respawn
});
} else {
// Worker processes have a http server.
http.Server(function(request, response)
{
response.writeHead(200);
console.log("request received by worker " + cluster.worker.process.pid);
var now = new Date().getTime();
while(new Date().getTime() < now + 10000)
{
//do nothing
}
response.end("hello world from " + cluster.worker.process.pid);
}).listen(8887);
}