Node.jsにいくつかのテストコードを書いていますが、HTTPリクエストをWebサーバーに繰り返しPOSTします。同じサーバーへ2つの同時node.js POST要求を送信することは可能ですか?
function doPost(opts, data) {
var post_req = http.request(opts, function(res) {
res.setEncoding('utf8')
res.on('data', function (chunk) { })
})
post_req.write(JSON.stringify(data))
post_req.end()
}
setInterval(doPost, interval, opts, msg)
これらの要求が順次発行されること、つまり、最初のPOSTが応答を受信するまで、後続のPOSTが送信されないようにすることをお勧めします。
私の質問は:実行時に使用されたnon-blocking architecture of the underlying libuv libraryのため、このコードはWebサーバーへの接続で1つのPOSTを送信する可能性がありますが、サーバーはまだ到着していませんか?
これはselect()ループで想像すれば、私は2番目のPOSTのwrite()を呼び出すだけで、EWOULDBLOCKを得ることができます。または、ネットワークが落ちたら、IOスレッドプールまでキューに入れられたPOST要求のバックログを構築するだけでしょうか?この場合、どのような行動が予想されるのかは不明です。次のPOSTが始まる前にPOSTの完了を強制するために何かをする必要がありますか?
あなたは非同期ライブラリを調べましたか? https://www.npmjs.com/package/async 'eachSeries'はあなたが見たい機能です。 – aschmid00