greqests.map中的url太多会导致mac上的gevent.hub.LoopExit

时间:2014-04-16 18:18:52

标签: python asynchronous python-requests gevent grequests

在我的代码(https://github.com/chembl/chembl_webresource_client/blob/master/chembl_webresource_client/web_resource.py#L98

我正在呼叫grequests.map

ret = grequests.map(rs, size=50)

rs作为网址列表。如果该列表的大小大于某个值(我的情况是300),我得到:

File "/Library/Python/2.7/site-packages/gevent/hub.py", line 331, in switch
      return greenlet.switch(self)
gevent.hub.LoopExit: This operation would block forever

无论size参数如何(我尝试了10到50之间的不同值以及完全忽略此参数)。

仅在macOS上发生这种情况。在Ubuntu中,任何大小的URL列表都可以使用。

我会感激任何帮助,因为这是我的小型图书馆的一个节目。

1 个答案:

答案 0 :(得分:0)

也许你正在犯这个错误:https://github.com/gevent/gevent/issues/423

将在1.0.1中修复。

你可以尝试使用master分支吗?