2012-10-26 26 views
0

有人能幫助我gevent的令人費解的行爲嗎?這是我的代碼:
https://gist.github.com/3956734關於gevent的運行時間難題

我想知道如何使用gevent.pool。我一次產卵一次,除了睡10秒之外,其他什麼也不做。它應該只運行10秒,但在實際情況下運行20秒。

我的代碼有什麼問題?我已閱讀gevent的文檔,但仍然不知道。

回答

1

根據你的代碼的註釋:

#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秒,因爲你每個產卵後加入池。所以你的代碼是這樣做的:產卵,加入(10秒等待),產卵,加入(10秒等待)。

我想你的意思是讓pool.join()以外的while循環。然後它只會等待10秒鐘。

+0

yes,kkurian,thx – young001