有人可以帮助我 gevent 令人费解的行为吗?这是我的代码:
https ://gist.github.com/3956734 。
我想知道怎么用gevent.pool
。我一次产生一个greenlet,greelet除了睡10秒什么都不做。它应该只运行 10 秒,但在实际情况下运行 20 秒。
我的代码有什么问题?我已经阅读了 gevent 的文档,但仍然不知道。
根据您代码中的注释:
#ids_set = {'945453','1909279'}
根据你的问题,你的greenlets除了睡10秒什么都不做。
假设这两件事都是真的,那么你的代码......
while ids_set is not None:
id = ids_set.pop()
print 'now id is', id
pool.spawn(download_content_test,int(id))
pool.join()
... 应该运行 20 秒,因为您在每次生成后加入池。所以你的代码正在这样做:spawn,join(10 秒等待),spawn,join(10 秒等待)。
我认为你的意思是pool.join()
在while循环之外。然后它只会等待10秒。