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是有帮助的。 –