2015-08-19 2 views
2

Я хочу написать простой код для проверки nodejs. Параллельность, когда он получает много запросов.Как проверить nodejs параллельный запрос

И я использую LoadTest модуля для Simulate отправить много запросов на сервер с помощью следующей команды:

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); 

но запросы только ждать до тех пор, пока цикл не опустится

и знаю, как решить эту проблему. Я должен использовать функцию обратного вызова, но не знаю. это.

+1

Вы хотите, чтобы имитировать обработчик запросов, принимая какое-то время, прежде чем он посылает ответ? Для этого используйте 'setTimeout'. – robertklep

+0

спасибо за ответ, у меня есть веб-приложение, которое часто мой сервер получает 50,0000 запросов в один момент, я хочу использовать nodejs для получения, обработки и отклика параллельных запросов, но запросы ждут в очереди до тех пор, пока последний процесс запроса не будет, и я не буду Не знаю, как справиться с этой проблемой. –

+0

Код, который вы публикуете, не имеет смысла (например, вы блокируете цикл событий, а во-вторых, вы фактически не отправляете ответы). Поэтому, возможно, вам стоит опубликовать фактический код или лучше описать, что именно вы пытаетесь выполнить. – robertklep

ответ

0
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); 

ПРОБЛЕМА: Все запросы ждать в очереди, пока последний процесс запроса (процесс-вставка-выберите) вниз

Смежные вопросы