同步AMQP发布

时间:2012-07-01 08:08:59

标签: python rabbitmq amqp pika

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

系统的其他部分使用pika来支持AMQP,但它是异步的,即使在那里存在某种“阻塞”连接,我也不想使用它。

当然,如果所有其他方法都失败了,则可以为每个WSGI进程维护一个Pika事件循环。另一个问题是我在目前稳定版的Pika中发现了一些令人讨厌的(IMO)错误,我宁愿使用别的东西。

重申:

  • 我需要做basic.publish(“确认”支持!以便我知道该消息何时未实际发布)
  • 以同步方式
  • 对于rabbitmq(显然,“纯粹的”AMQP也可以工作)
  • 来自python WSGI应用程序

3 个答案:

答案 0 :(得分:1)

我的理解是你可以使用RabbitMQ的RPC进行同步调用。因为你已经有了鼠兔,所以你应该没有多少努力来采用它。

答案 1 :(得分:1)

我建议您查看Kombu Celery,它是{{3}}使用的基础库。 Kombu和Celery都与Django和Flask(基于Werkzeug)通用且易于集成,因此您不应该在将其与WSGI应用程序集成时遇到任何问题。

答案 2 :(得分:0)

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

有一节叫做: 同步编程风格,没有并发性 http://pika.github.com/communicating.html#synchronous-programming-style-no-concurrency

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