-2

我在 Python 中搞乱了 XMPP,我希望能够产生新的进程来监听 XMPP 上的消息。我想我会使用 gevent 来产生新的进程来监听消息。

我只是想将消息写入一个简单的 SQLite3 数据库只是为了跟踪正在发生的事情,但是消息只写入一个用户的数据库。我确信我只是不明白 gevent 是如何工作的。

这是代码。https://gist.github.com/simonbowen/6756511

4

1 回答 1

0

您需要激活 gevent 猴子补丁。它将使来自 SleekXMPP 库的 Python 代码“非阻塞”,并且您将能够并行处理多个 greenlet。只需在 gevent 导入后添加以下行:

from gevent import monkey; monkey.patch_all()

但是,在我看来,对 sqlite3 的调用仍然会被阻塞,因为我认为它是一个用 C 编写的 Python 扩展模块。如果你想要一个完全对 gevent 友好的实现,你必须单独调用 sqlite3线程,例如,使用 gevent 线程池。

于 2013-09-29T21:29:59.113 回答