关于python:同步AMQP发布

Synchronous AMQP publish

我知道有很多库,在Python中实现AMQP支持。不过,我需要的是一个库,它允许我以同步方式进行AMQP发布,因为它将从wsgi应用程序中使用,因此与队列代理交互的通常异步回调驱动方式会有点不合适。

系统的其他部分使用PIKA来支持AMQP,但它是异步的,我宁愿不使用它,即使那里有一种"阻塞"连接。

当然,如果所有其他方法都失败了,就可以为每个WSGi进程维护一个PIKA事件循环。另一个问题是,我在当前稳定版本的pika中发现了一些讨厌的(imo)bug,我宁愿使用其他的东西。

重申:

  • 我需要做basic.publish(与"确认"支持!以便我知道消息何时实际未发布)
  • 以同步方式
  • 对于rabbitmq(显然,"pure"amqp也可以工作)
  • 从python wsgi应用程序


我建议你去看看科布,它是芹菜使用的底层图书馆。Kombu和芹菜通常很容易与Django和Flask(基于Werkzeug)集成,因此您不应该在将其与WSGi应用程序集成时遇到任何问题。


我的理解是,您可以使用rabbitmq的rpc进行同步调用。因为你已经有了PIKA,所以你不应该太费劲地采用它。


您是否在PIKA文档站点测试了示例代码?

有一个部分叫做:同步编程风格,无并发性http://pika.github.com/communication.html同步编程风格无并发

看起来您想要的是一种RPC风格的调用。您可以在以下位置找到一个很好的同步示例:http://www.rabbitmq.com/tutorials/tutorial-six-python.html