CNode

利用cluster来让程序充分利用多核CPU

Ffrosh发布于13 年前最后回复13 年前0 回复5473 浏览0 收藏

在nodejs官方网站上面都可以看到这种代码

if(cluster.isMaster){
    for(var i = 0 ; i < numCPUS ; i ++){
        cluster.fork();
    }   
    cluster.on('exit',function(worker,code,signal){
        console.log('worker ',worker.process.pid," is died");
        process.exit();
    }); 
}else{
    http.createServer(app).listen(app.get('port'), function(){
      console.log('Express server listening on port ' + app.get('port'));
    }); 
    
}

请看中间的cluster.on('exit')...这里面的部分

我相信很多人都希望当cluster结束后直接再重新开启,会将里面的process.exit()改为cluster.fork()

这一点比较关键,因为这么干了之后就会出现很多cluster.fork()绑定不上的情况,一直循环报错

所以还是让process退出,然后用supervisor脚本来重启这个进程比较合适

查看回复

回复 (0)

暂无回复,成为第一个参与讨论的人。
参与回复
登录后即可参与回复。登录