我正在使用Request模块来获取html页面,它工作得很好,但是一段时间后我会遇到一些请求出现
ENOTFOUND
和EADDRINFO
的错误。在网上找到了一些类似的问题(#699、#5488、#697),据我所知,我可能没有消耗一些(或全部)响应,并且在某个时刻应用程序达到了套接字池最大大小。
我不太确定所有这些,但我考虑增加globalAgent.maxSockets
(到100?),并始终通过调用response.resume()
在请求回调函数的开头消耗响应。这些话有道理吗?还是我完全偏离了轨道?
我查看了Node的代码,试图理解resume()
的作用,但我不确定我是否找到了正确的功能(#L698)。
感谢您的帮助。
http.globalAgent.maxSockets = 100
和https.globalAgent.maxSockets = 100
,并且每次使用request
模块时,我都会在回调函数中添加以下内容:if (response) { response.resume(); }
。 - jc-tzn