私のノード サイトでは、標準の http get を使用して構築した RESTful API サービスを呼び出します。この通信が正常に機能してから数時間後、リクエストの送信が停止し、待機するだけで最終的にタイムアウトすることがわかりました。
呼び出されている API は、別の場所からのリクエストを引き続き完全に受信していますが、リクエストがサイトから送信されると、API に到達しません。
stream.pipe、util.pump を試し、ファイル システムにファイルを書き込むだけです。
Node 0.6.15 を使用しています。私のサイトと呼び出されているサービスは同じサーバー上にあるため、localhost への呼び出しが行われています。メモリ使用率は全体で約 25% で、CPU の平均使用率は約 10% です。
しばらく問題が発生した後、リクエストモジュールの使用を開始しましたが、同じ動作をします。失敗する前に行う呼び出しの数は、5 から 100 の間のようです。
サイト内のコードの大まかな内容は次のとおりです。
var Request = require('request');
downloadPDF: function(req, res) {
Project.findById(req.params.Project_id, function(err, project) {
project.findDoc(req.params.doc_id ,function(err, doc) {
var pdfileName;
pdfileName = doc.name + ".pdf";
res.contentType(pdfileName);
res.header('Content-Disposition', "filename=" + pdfileName);
Request("http://localhost:3001/" + project._id).pipe(res);
});
});
}
私は何が起こっているのかについてたくさんのことを知っています。