Nodejs极简入门教程(三):进程(2)


var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
 
// 检查进程是否是 master 进程
if (cluster.isMaster) {
    for (var i = 0; i < numCPUs; ++i)
        // 生成新的 worker 进程(只有 master 进程才可以调用)
        cluster.fork();
 
    cluster.on('exit', function(worker, code, signal) {
        console.log('worker ' + worker.process.pid + ' died');
    });
} else {
    http.createServer(function(req, res) {
        res.writeHead(200);
        res.end('hello world\n');
    }).listen(8000);
}

我们在 worker 进程中调用 listen 方法,监听请求将会传递给 master 进程。如果 master 进程已经存在一个正在监听的 server 符合 worker 进程的要求,那么此 server 的 handle 将会传递给 worker,如果不存在,master 进程则会创建一个,然后将 handle 传递给 worker 进程。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgsgzg.html