2013-09-29 33 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。