2013-09-29 31 views
-2

我在Python中使用XMPP搞亂了,我希望能夠產生新的進程來通過XMPP監聽消息。我想我會使用gevent來產生新的進程來收聽消息。SleekXMPP和Gevent

我只是試圖寫郵件到一個簡單的SQLite3數據庫只是爲了跟蹤發生了什麼,但是郵件只寫入到一個用戶的數據庫。我相信我只是沒有得到gevent如何工作。

這是代碼。 https://gist.github.com/simonbowen/6756511

回答

0

您需要激活gevent monkey-patching。它將使Python代碼像來自 SleekXMPP庫的「非阻塞」一樣,並且您將能夠並行處理多個greenlet 。只需添加以下行GEVENT導入後:

from gevent import monkey; monkey.patch_all() 

然而,在我看來,調用SQLITE3仍將被封鎖,因爲我想 它是用C寫的 如果你想去一個Python擴展模塊對於一個完整的gevent友好的實現,你必須在一個單獨的線程中調用sqlite3的 ,例如,使用gevent threadpool。