运行gevent pool会在join
上给出以下异常:
返回greenlet.switch(自我)
gevent.hub.LoopExit :('此操作将永久阻止',Hub在0x105cbd190选择默认待定= 0 ref = 0)
代码是:
queue = gevent.queue.Queue(items=range(5))
pool = gevent.pool.Pool(3)
pool.map(self.foo_index, queue)
pool.join(raise_error=True)
在join
期间调用map
之前似乎发生了错误。哦,等等,立即引发异常,必须来自join
:这很令人困惑。
答案 0 :(得分:0)
在您的示例代码上使用map_async确实解决了我的问题。我希望这就是你要找的东西。
答案 1 :(得分:0)
由于gevent.queue.Queue
对象而引发错误。我用默认列表替换它,现在它可以工作。不确定为什么Queue是一个问题,因为它似乎是一个可迭代的。