【发布时间】:2015-08-19 12:20:22
【问题描述】:
我想写一个简单的代码来测试nodejs收到很多请求时的并发性。
我使用 loadtest 模块来模拟使用此命令向服务器发送许多请求:
loadtest -c 10 --rps 200 http://localhost:3000/
我用 server.js 编写的简单代码:
var http = require('http');
var server = http.createServer();
var cun=0;
var step=0;
function handleRequest(req,res) {
console.log(step++);
while(100000000>cun){
cun++;
}
cun=0;
}
server.on('request', handleRequest);
server.listen(3000);
但是请求是等到while循环结束
知道要解决这个问题我应该使用回调函数,但不知道怎么写。
【问题讨论】:
-
您想模拟请求处理程序在返回响应之前需要一些时间吗?为此使用
setTimeout。 -
感谢您的回复,我有一个 Web 应用程序,我的服务器通常会立即收到 50,0000 个请求,我想使用 nodejs 来接收、处理和响应并发请求,但是请求在队列中等待直到最后请求进程已关闭,我不知道如何处理此问题
-
您发布的代码没有意义(一方面,您阻塞了事件循环,其次,您实际上并没有发回任何响应)。因此,也许您应该发布实际代码,或者更好地描述您想要完成的具体内容。
标签: node.js concurrency