多くの発信HTTPリクエストを作成するAzure関数を作成しようとしています。定期的にそれは限界に達すると思われ、すべての要求は数分間タイムアウトします。それから、もう一度作業が始まり、要求が通過します。Azure関数 - ノードアプリケーションのポート枯渇
関数を実行しているマシンでポートが枯渇している可能性がありますが、これをデバッグする方法や、ノードアプリケーションで回避する方法がわかりません。request
ライブラリを使用しています。これは、ノードがこれを防ぐために接続をプールすると思われるようにも聞こえます。私は機能上、netstat
を使用することができないので、ポートの疲労が問題であるかどうかはまったくわかりません。私のラップトップには問題はありません。ここで
は、要求の多くを発射するシンプルAzureの関数の1つずつと、この問題を示しています
const cp = require('child_process');
const request = require('request');
module.exports = function (context, myTimer) {
context.log('Starting');
function doCall(cb) {
const url = 'https://jsonplaceholder.typicode.com/posts';
request(url, (err) => {
if (err) {
context.log("error: " + err.toString());
}
cb();
});
}
let i = 500;
doCall(function iterate() {
if (i-- > 0) {
context.log('iterate ' + i);
doCall(iterate);
} else {
context.log('done');
context.done();
}
});
};
私はそれが正常に実行見る、数分のための時間外は、再び正常に実行します..
たぶん、プールサイドには役立つだろう削減:今すぐ上から
私の例では、このようになります。 Nodeに精通しているわけではありませんが、https://stackoverflow.com/questions/19043355/how-to-use-request-js-node-js-module-poolsの何かが役に立ちます。 –