如何用Pika编写异步RPC客户端?

时间:2016-05-16 11:07:30

标签: python rabbitmq rpc pika

我尝试使用pika编写异步RPC客户端,我的代码基于以下示例,

http://pika.readthedocs.io/en/latest/examples/asynchronous_publisher_example.html

问题是,根据pika的RPC blocking example,RPC调用不使用交换,但每当我尝试使用时打开交换,

self._channel.exchange_declare(self.on_exchange_declareok,
                                   '',
                                   self.EXCHANGE_TYPE)

我断开连接。此外,如果我尝试跳过exchange_declare函数并直接跳转到声明队列,我得到相同的结果。解决这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以通过添加处理RabbitMQ连接的后台线程来实现Async RPC客户端。我有一个pika和flask的工作示例here

您还有一个更详细的示例,该示例基于我自己的库here

这些显然仍然基于阻塞连接,但至少它们提供了异步解决方案。

相关问题