0
我的问题是当我打开一条快速路由时,群集崩溃中的工作人员之一。Node.js,Express,MongoDB - 群集工作者崩溃
4个工人:
API started on port 8000
API started on port 8000
API started on port 8000
API started on port 8000
然后我浏览到http://localhost:8000
worker 1 has died :(
工人死亡后,整个集群变得反应迟钝。 当我只使用一个cpu时它工作正常。
server.js
var cluster = require('cluster');
if(cluster.isMaster){
var cpuCount = require('os').cpus().length;
// Create a worker for each CPU
for (var i = 0; i < cpuCount; i += 1) {
cluster.fork();
}
cluster.on('exit', function(worker) {
console.log('worker:' + worker.id + " is dead");
cluster.fork();
});
} else {
var init = require('./config/init')();
var config = require('./config/config');
var mongoose = require('mongoose');
var chalk = require('chalk');
var db = mongoose.connect(config.db, function(err) {
if (err) {
console.error(chalk.red('Could not connect to MongoDB!'));
console.log(chalk.red(err));
}
});
var app = require('./config/express')(db);
app.listen(config.port);
require('./config/passport')();
console.log('API started on port ' + config.port);
}
当工人死亡时,记录退出/信号代码可能是值得的。请参阅[精细手册](https://nodejs.org/api/cluster.html#cluster_event_exit)。 – robertklep