我使用cluster
模块创建子进程/工作者。这是我的简单设置:
if (cluster.isMaster) {
cluster.fork();
} else {
http.createServer((req, res) => {
if (cluster.isMaster) {
res.writeHead(200);
res.end('hello from master\n');
} else {
while (true) {
console.log('from child');
}
}
}).listen(8484);
}
我想知道,如果子进程忙,主进程是否处理请求。所以我运行上面的代码并从浏览器发出两个请求,期望第一个请求使子进程忙,第二个进程将由主集群处理。但我从未将hello from master
发送给客户。
如果子进程忙,主进程/工作者/集群处理请求也是如此?如果是这样,为什么我的实验没有用?
答案 0 :(得分:1)
我有理由相信,只有主人才能管理孩子。您的实验无法正常工作,因为您的服务器代码只是按照书面形式设置在子项内部,因此针对它们的所有请求都将针对子进程