0
我在嘗試構建一個Azure函數,該函數會傳出大量HTTP請求。定期它似乎達到了極限,所有的請求超時幾分鐘。然後它再次開始工作並請求通過。Azure功能 - 節點應用程序中的端口耗盡
從四周搜索,這聽起來像這可能是由於運行該功能的機器上的端口耗盡,但我不明白如何調試此問題或使用request
庫在Node應用程序中解決此問題。這聽起來像是Node應該聯合連接來防止這種情況發生。我並不確定端口耗盡是問題所在,因爲我不能在該功能上使用netstat
。我從來沒有在筆記本電腦上運行過任何問題。
這裏有一個簡單的Azure的功能將觸發大量的請求,一次一個,並說明了這個問題:
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是有幫助的。 –