【发布时间】:2012-07-01 08:08:58
【问题描述】:
我知道有许多库在 python 中实现 AMQP 支持。不过,我需要的是一个库,它允许我以同步方式进行 AMQP 发布,因为它将在 WSGI 应用程序中使用,因此与队列代理交互的通常异步回调驱动方式将是有点不合适。
系统的其他部分使用 pika 来支持 AMQP,但它是异步的,即使那里存在某种“阻塞”连接,我也不想使用它。
当然,如果所有其他方法都失败了,则可以为每个 WSGI 进程维护一个 Pika 事件循环。另一个问题是我在当前稳定版本的 Pika 中发现了一些令人讨厌的 (IMO) 错误,我宁愿使用其他东西。
重申:
- 我需要做 basic.publish(带有“确认”支持!这样我才能知道消息何时没有真正发布)
- 以同步方式
- 到 rabbitmq(显然,“纯”AMQP 也可以工作)
- 来自 python WSGI 应用程序
【问题讨论】:
-
您对应用程序的 WSGI 部分有多少控制权。您是在 WSGI 之上使用框架还是自己调用 start_response 函数?
-
@jfocht 该应用程序使用由 Werkzeug 提供的请求/响应类。顺便说一句,是的,我自己正在调用 start_response。
-
WSGI 环境不是以同步方式制作异步事物的原因
-
顺便说一句,我在一条类似的船上 - 寻找一种方法来进行同步 RPC 调用。我找到的唯一解决方案是使用 Pika 的轮询机制,基本上是在 connection.is_open 时检查消息。还在寻找。