Gevent hub在池

时间:2016-07-19 15:26:55

标签: python gevent

运行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:这很令人困惑。

2 个答案:

答案 0 :(得分:0)

在您的示例代码上使用map_async确实解决了我的问题。我希望这就是你要找的东西。

答案 1 :(得分:0)

由于gevent.queue.Queue对象而引发错误。我用默认列表替换它,现在它可以工作。不确定为什么Queue是一个问题,因为它似乎是一个可迭代的。