2012-07-30 152 views
5

我有一長串需要爲我的服務打開的URL。每當我嘗試打開整個列表時,當我啓動該程序時,我會收到許多錯誤:[Errno 24] Too many open files。我正在使用urllib2和gevent。Python urllib2錯誤

有沒有人有任何解決方案?

謝謝。

+4

需要顯示一些代碼。 sscce.org – 2012-07-30 08:02:59

+2

和完整追溯 – 2012-07-30 08:05:31

回答

2

使用Gevent.pool一次只能打開一定數量的url,然後在打開url時重用這些greenlet。

+0

謝謝,這解決了這個問題! – 2012-08-19 15:44:28

0

由於我們仍然不知道您到底做了什麼,我只能猜測:您一次打開多個URL,然後才嘗試閱讀它們。相反,你應該/可以打開閱讀關閉它們,然後前進到下一個。

或者,您可以創建一個具有併發能力的URL加載器:打開某些 URL並嘗試同時讀取它們。關閉一個後,你可以開始下一個。如果您一次將其限制爲5或10,則不會再出現問題。