首页 > 解决方案 > gevent 猴子补丁停止 rabbit mq 列出消息

问题描述

我在我的 python 烧瓶应用程序中使用 gevent 线程,当我不猴子修补 python 线程时,兔子 mq 消息传递似乎工作正常,但是当我执行 gevent 猴子补丁时,兔子 mq 客户端 pika 停止侦听。想知道这种行为。

标签: pythonrabbitmqmonkeypatchingpika

解决方案


此问题的原因是使用 rabbitmq 时 Pika 和 gevent.monkey_patch 不兼容。如果可能的话,您必须在不修补系统调用的情况下使用 gevent。如果您在 gevent 中使用线程,那么您可能会遇到此问题greenlet.error: cannot switch to a different thread 这是因为猴子补丁。为此,您可以尝试使用进程而不是线程。


推荐阅读