Python 同步AMQP发布
我知道有很多库在python中实现AMQP支持。不过,我需要的是一个库,它将允许我以同步方式进行AMQP发布,因为它将从WSGI应用程序中使用,因此通常的异步回调驱动的队列代理交互方式将有点不合适 系统的其他部分用于AMQP支持,但它是异步的,即使存在某种“阻塞”连接,我也不想使用它 当然,如果所有其他操作都失败,那么可以为每个WSGI进程维护一个Pika事件循环。另一个问题是,我在当前稳定版本的Pika中发现了几个讨厌的(IMO)bug,我宁愿使用其他东西 重申:Python 同步AMQP发布,python,rabbitmq,amqp,pika,Python,Rabbitmq,Amqp,Pika,我知道有很多库在python中实现AMQP支持。不过,我需要的是一个库,它将允许我以同步方式进行AMQP发布,因为它将从WSGI应用程序中使用,因此通常的异步回调驱动的队列代理交互方式将有点不合适 系统的其他部分用于AMQP支持,但它是异步的,即使存在某种“阻塞”连接,我也不想使用它 当然,如果所有其他操作都失败,那么可以为每个WSGI进程维护一个Pika事件循环。另一个问题是,我在当前稳定版本的Pika中发现了几个讨厌的(IMO)bug,我宁愿使用其他东西 重申: 我需要执行basic.pu
- 我需要执行basic.publish(带有“确认”支持!以便我知道消息何时未实际发布)
- 以同步的方式
- 到rabbitmq(显然,“纯”AMQP也可以工作)
- 来自python WSGI应用程序
您对应用程序的WSGI部分有多大的控制权。您是在WSGI之上使用框架还是自己调用start_响应函数?@jfocht应用程序使用Werkzeug提供的请求/响应类。顺便说一句,是的,我自己正在调用start_response.WSGI环境不是以同步方式进行异步操作的原因。顺便说一句,我也在一条类似的船上——正在寻找一种方法来执行同步RPC调用。我发现的唯一解决方案是使用Pika的轮询机制,基本上是在connection.u打开时检查消息。这两个例子都提供了同步发布,但是在回复时会回调。最好有一个不需要回调机制的方法,而是阻塞等待响应的方法。你检查了puka吗?我在这里找到了一个讨论:[