【发布时间】:2016-01-19 21:36:18
【问题描述】:
我有一个 Python 应用程序,我想同时运行消费者和发布者。基本上,我想通过Consumer获取消息,然后对其进行解析和处理,然后通过Publisher将其发送回RabbitMQ。
我从官方 Pika 文档中获取了 async consumer 和 async publisher 的代码。它们单独工作,但我似乎无法让它们同时工作。在应用程序的起点,我有:
import messaging.MQ as MQ
MQ.start_consumer()
MQ.start_publisher()
但是,永远无法到达start_publisher() 行。
看起来罪魁祸首是Consumer中的这一行:
self._connection.ioloop.start()
在调用该行之后,除了Consumer 中定义的 asnyc 方法之外,什么都不会执行。
我觉得这很明显,但我似乎无法确定。
【问题讨论】:
-
你必须将发布逻辑放在你自己的on_message回调中
-
@0x41ndrea:这可能可行,但需要进行大量重构。请在下面查看我的答案。