5

我有一长串需要为我的服务打开的 URL。每当我尝试打开整个列表时,都会在启动程序时收到许多错误,例如:[Errno 24] Too many open files. 我正在使用 urllib2 和 gevent。

有没有人有任何解决方案?

谢谢。

4

2 回答 2

2

使用Gevent.pool 一次只打开一定数量的 url,然后在打开 url 时重用这些 greenlet。

于 2012-07-30T13:30:24.740 回答
0

由于我们仍然不知道您到底在做什么,我只能猜测:您同时打开了许多 URL,然后您才尝试阅读它们。相反,您应该/可以打开-阅读-关闭它们,然后前进到下一个。

或者,您可以创建一个支持并发的 URL 加载器:打开一些url 并尝试同时读取它们。关闭一个后,您可以开始打开下一个。如果您一次将其限制为 5 或 10 个,那么您应该不会再遇到问题了。

于 2012-07-30T08:58:00.817 回答