gpt4 book ai didi

javascript - 为什么这是 Node js 集群中的错误

转载 作者:行者123 更新时间:2023-12-03 07:27:53 26 4
gpt4 key购买 nike

你好,我想学习 Node js 中的多线程。我现在正在学习,但我在 Node js 中的集群方面遇到了一些麻烦。我在下面找到了这些代码。为什么当我想要转到 http://localhost/plumber 时这些代码会出错地址 ?谢谢...

var cluster = require('cluster');
var numCPUs = require('os').cpus().length;
var http = require('http');

if (cluster.isMaster) {
console.log (' Fork %s worker(s) from master', numCPUs);
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('online', function(worker) {
console.log ('worker is running on %s pid', worker.process.pid);
});
cluster.on('exit', function(worker, code, signal) {
console.log('worker with %s is closed', worker.process.pid);
});
} else if (cluster.isWorker) {
var port = 3000;
console.log('worker (%s) is now listening to http://localhost:%s',
cluster.worker.process.pid, port);
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
console.log(req.url+cluster.worker.process.pid);
if(req.url=='/plumber'){
sleep(10);
res.end('no write because of error but answer requests');
}else {
res.end('cluster' + cluster.worker.process.pid + 'answered');
}
}).listen(port,"127.0.0.1");

}

最佳答案

首先,如果不是默认端口 (80),则需要在 url 中指定端口:

http://localhost:3000/plumber

其次,sleep 不是一个函数;而且很可能它永远不会成为您想要的方式,因为 Node.js 在设计上是非阻塞的。您可能想使用诸如 setTimeout 之类的东西。

关于javascript - 为什么这是 Node js 集群中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35926714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com