2014-09-05 67 views
5

我使用Request模塊來提取html頁面,它工作的很好,但過了一段時間後,我在某些請求中收到錯誤ENOTFOUNDEADDRINFO。在網上瀏覽後,我發現了一些類似的問題(#699,#5488,#697),而我從中瞭解到的情況是我可能沒有使用某些(或全部)響應,並且某些時候應用會到達套接字池最大尺寸。Nodejs錯誤:getaddrinfo ENOTFOUND&EADDRINFO

我並不確定所有這些,但我正在考慮增加globalAgent.maxSockets(至100?),並始終在請求回調開始時通過調用response.resume()來消費響應。這有什麼意義嗎?或者我偏離軌道?

我查看了Node的代碼,試圖瞭解resume()的功能,但我不確定是否找到了正確的功能(#L698)。

感謝您的幫助。

+0

你能描述你正在運行的環境這在?你是否會在本地環境中看到與你說的AWS,Heroku等相同的症狀? – aembke 2014-09-05 21:07:40

+0

我不記得在開發環境中看到這個問題。 prod env在AWS上,節點0.10.21 – 2014-09-07 12:40:02

+0

@ jc-tzn您是否找到解決方案?我有類似的問題。 – shug 2015-08-27 14:43:32

回答

0

每kanaka的建議,我回答我的問題與我找到了解決辦法:

我做了什麼,我說我會嘗試和解決這個問題(不知道爲什麼雖然)。所以我初始化設置http.globalAgent.maxSockets = 100https.globalAgent.maxSockets = 100我每次使用請求模塊時間服務器之前,我在回調補充一點:if (response) { response.resume(); }

也許這將幫助別人:)

相關問題