ネットワークをスキャンして利用可能なHTTPページを探すnode.jsスクリプトを作成したので、並行して実行したい接続がたくさんありますが、一部のリクエストは前の完了を待っているようです。
以下はコードフラグメントです。
var reply = { };
reply.started = new Date().getTime();
var req = http.request(options, function(res) {
reply.status = res.statusCode;
reply.rawHeaders = res.headers;
reply.headers = JSON.stringify(res.headers);
reply.body = '';
res.setEncoding('utf8');
res.on('data', function (chunk) {
reply.body += chunk;
});
res.on('end', function () {
reply.finished = new Date().getTime();
reply.time = reply.finished - reply.started;
callback(reply);
});
});
req.on('error', function(e) {
if(e.message == 'socket hang up') {
return;
}
errCallback(e.message);
});
req.end();
このコードは 1 秒あたり 10 ~ 20 のリクエストしか実行しませんが、500 ~ 1,000 のリクエストのパフォーマンスが必要です。キューに入れられたすべての要求は、異なる HTTP サーバーに対して行われます。
私はそのようなことをしようとしましたが、助けにはなりませんでした:
http.globalAgent.maxSockets = 500;