- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图了解集群的工作人员如何处理 http 请求。我从 http://nodejs.org/api/cluster.html 的代码开始并在其周围添加了一些日志记录。
我将以下代码放入 server.js 中并使用以下命令执行该文件:NODE_DEBUG=集群 Node server.js
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log('number of CPUs: ' + numCPUs);
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
console.log('forking worker ' + i);
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
});
} else {
console.log('worker spawned: ' + cluster.worker.process.pid);
var someVar = {'b': 1};
// Workers can share any TCP connection
// In this case its a HTTP server
http.createServer(function(req, res) {
console.log('someVar.b current value: ' + someVar.b + ". someVar.b will be incremented");
someVar.b = someVar.b + 1;
console.log('Request being processed by worker: ' + cluster.worker.process.pid);
res.writeHead(200);
res.end("hello world\n");
console.log('response ended by worker: ' + cluster.worker.process.pid);
}).listen(8000);
}
然后我访问了 localhost:8000 一次,你瞧,“hello world”就是我预期的响应。我没想到的是一些日志语句被打印了两次:
number of CPUs: 2
forking worker 0
forking worker 1
535,Master Worker 536 online
535,Master Worker 537 online
worker spawned: 536
worker spawned: 537
someVar.b current value: 1. someVar.b will be incremented
Request being processed by worker: 536
response ended by worker: 536
someVar.b current value: 2. someVar.b will be incremented
Request being processed by worker: 536
response ended by worker: 536
具体来说,我预计对于向我的服务器发出的一个请求,以下行只会打印一次:
someVar.b current value: X. someVar.b will be incremented
Request being processed by worker: XXX
response ended by worker: XXX
相反,我的函数由同一个工作人员执行两次。有人可以解释一下吗?
最佳答案
您检查过req.url
吗?我打赌这两个请求之一是针对 /favicon.ico
的。
关于node.js - 当将 http.createServer 与集群一起使用时,为什么为 http.createServer 提供的回调被多次调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26500005/
我试图了解集群的工作人员如何处理 http 请求。我从 http://nodejs.org/api/cluster.html 的代码开始并在其周围添加了一些日志记录。 我将以下代码放入 server.
我无法理解 node.js 中 net.createserver 和 http.createserver 之间的区别。 我已阅读位于这两个网址的两种方法的文档 https://nodejs.org/a
在浏览了 node.js 文档后,我意识到 创建服务器 上的方法http 模块已更新以接收 选项 争论。如果我没记错的话,以前的 node.js 版本中没有包含它 http.createServer(
我是nodejs的初学者。我尝试了下面的代码。但服务器没有监听端口和主机。 var fs = require("fs"); var config = JSON.parse(fs.readFileSyn
我正在创建一个尝试学习 Node.js 的基本应用。 我需要加载一个 html 格式的起始页(带有一些样式和 js 脚本)。 以后我需要从 js 调用 ajax 到 Node,我发现我应该使用 exp
我在 Node 中运行这个脚本: var http = require('http'); var server = http.createServer(function (request, respo
我在全局安装了 express 并且 npm 安装了我的 express 应用程序,但智能或应用程序都没有工作(我在 mac OS Yosemite 上使用 visual studio code)。
我试图将 Node JS 服务器包装在 JS 对象中,为了做到这一点,我编写了这个构造函数: function staticServerObj (rootFolder) { this.root
我有这个代码: var gqlServer =require('./server.js') var server=gqlServer() var port = process.env.PORT||50
这个问题已经有答案了: How to access the correct `this` inside a callback (15 个回答) 已关闭 3 年前。 好的,这就是我所拥有的: const
我正在尝试使用 Node.JS 创建一个基本的网络服务器,但在正确提供图像时遇到了问题。 var server = http.createServer(function (request, respo
我正在参加 learnyounode 研讨会,我对其中一个官方解决方案中的这段代码感到好奇。 var server = http.createServer(function (req, res) {
我有两个 js 文件 screenshot.js 和 main.js,我想从 screenshot.js 返回 JSON 到 main.js,但是当你运行 console.log( this.resu
当我想使用express.Application作为http.createServer的参数时,出现此错误: 错误 TS2345:“应用程序”类型的参数无法分配给“(请求:IncomingMessag
当涉及到套接字时,我习惯于 perl 和 POE 编程,并且我正在考虑将 node.js 用于不基于 Web 的应用程序服务器。我通过编写网页用户界面获得了 JavaScript 知识。 我一直在使用
这个问题在这里已经有了答案: "Cannot GET /" with Connect on Node.js (12 个答案) 关闭 8 年前。 我正在尝试使用 AngularJS 书籍 (serve
在 Node 的幕后,http 模块的 createServer 方法(及其回调)如何与事件循环交互?是否可以在用户空间中自行构建类似于 createServer 的功能,或者这是否需要更改 Node
我正在尝试在网站上设置登录系统。 为此,我必须仅加载 http cookie。 为了加载它们,我必须在 https 启动时通过 createServer 函数中的响应对象将它们发送回客户端。 我已经通
我一直在研究这个基本示例,以便在 Node 中设置一个简单的服务器,但是我真的很难理解“请求”和“响应”参数的来源。它们指向哪里以及如何指向? // Load the http module to c
美好的一天, 我正在玩这里找到的例子:PHP Socket Server vs node.js: Web Chat . 使用 gMUD(类似 telnet 的客户端)连接到我的服务器,我似乎无法检测客
我是一名优秀的程序员,十分优秀!