4

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

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

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

重申:

  • 我需要做 basic.publish (有“确认”支持!这样我就知道消息什么时候没有真正发布)
  • 以同步方式
  • 对于 rabbitmq(显然,“纯”AMQP 也可以工作)
  • 来自 python WSGI 应用程序
4

3 回答 3

1

我建议您查看Kombu,它是Celery使用的底层库。Kombu 和 Celery 都可以很容易地与 Django 和 Flask(基于 Werkzeug)集成,因此将它与 WSGI 应用程序集成应该不会有任何问题。

于 2012-07-19T04:06:17.023 回答
1

我的理解是可以使用 RabbitMQ 的 RPC 进行同步调用。由于您已经安装了鼠兔,因此您应该不费吹灰之力就可以采用它。

于 2012-07-19T02:51:33.940 回答
0

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

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

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

于 2012-07-20T08:16:33.023 回答