我想写一个简单的代码来测试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 循环停止
并且知道要解决这个问题我应该使用回调函数,但不知道如何编写它。
最佳答案
var http = require('http');
var url = require("url");
var server = http.createServer();
function handleRequest(req, res) {
res.writeHead(200, { 'content-type': 'text/plain'});
var params = url.parse(request.url, true).query;
var input = params.number;
/*
1- Use input param in a algorithm and process it
2- Insert data in to the db
3- select on db and return to the client
*/
res.end();
}
server.on('request', handleRequest);
server.listen(3000);
问题: 所有请求都在队列中等待,直到最后一个请求进程(process-insert-select)关闭
关于node.js - 如何测试nodejs并发请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32095369/