我正在使用Python中的XMPP,我希望能够通过XMPP生成新进程来侦听消息。我想我会使用gevent来生成新进程来监听消息。
我只是尝试将消息写入一个简单的SQLite3数据库,只是为了跟踪发生的事情,但是消息只会写入一个用户的数据库。我相信我只是没有得到gevent如何运作。
答案 0 :(得分:0)
您需要激活gevent monkey-patching。它将使Python代码变得如此 SleekXMPP库'非阻塞',您将能够处理多个greenlet 在平行下。只需在gevent导入后添加以下行:
from gevent import monkey; monkey.patch_all()
然而,在我看来,在我看来,对sqlite3的调用仍然会被阻塞 它是用C编写的Python扩展模块。 如果你想要一个完整的gevent友好实现,你必须做 在一个单独的线程中调用sqlite3,例如,使用gevent threadpool。