- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想使用 direct reply-to RabbitMQ 的特性与 Pika Python 中的客户端库。它适用于基本 消费者。但它会针对生成器 消费者引发以下异常:
pika.exceptions.ChannelClosedByBroker: (406, 'PRECONDITION_FAILED - fast reply consumer does not exist')
有没有办法对生成器消费者使用直接回复功能?
使用基本消费者的示例客户端代码(有效):
import pika
def handle(channel, method, properties, body):
message = body.decode()
print("received:", message)
connection = pika.BlockingConnection()
channel = connection.channel()
with connection, channel:
message = "hello"
channel.basic_consume(queue="amq.rabbitmq.reply-to",
on_message_callback=handle, auto_ack=True)
channel.basic_publish(
exchange="", routing_key="test", body=message.encode(),
properties=pika.BasicProperties(reply_to="amq.rabbitmq.reply-to"))
print("sent:", message)
channel.start_consuming()
使用生成器消费者的示例客户端代码(引发异常):
import pika
def handle(channel, method, properties, body):
message = body.decode()
print("received:", message)
connection = pika.BlockingConnection()
channel = connection.channel()
with connection, channel:
message = "hello"
channel.basic_publish(
exchange="", routing_key="test", body=message.encode(),
properties=pika.BasicProperties(reply_to="amq.rabbitmq.reply-to"))
print("sent:", message)
for (method, properties, body) in channel.consume(
queue="amq.rabbitmq.reply-to", auto_ack=True):
handle(channel, method, properties, body)
环境。 — Windows 10、RabbitMQ 3.7.13、CPython 3.7.3、Pika 1.0.1。
注意。 — 在示例客户端代码中调用 basic_publish
方法 消费者引发与使用生成器消费者时相同的异常:
import pika
def handle(channel, method, properties, body):
message = body.decode()
print("received:", message)
connection = pika.BlockingConnection()
channel = connection.channel()
with connection, channel:
message = "hello"
channel.basic_publish(
exchange="", routing_key="test", body=message.encode(),
properties=pika.BasicProperties(reply_to="amq.rabbitmq.reply-to"))
print("sent:", message)
channel.basic_consume(queue="amq.rabbitmq.reply-to",
on_message_callback=handle, auto_ack=True)
channel.start_consuming()
最佳答案
正如 Luke Bakken 所建议的那样 here , 这就是诀窍:
import pika
def handle(channel, method, properties, body):
message = body.decode()
print("received:", message)
connection = pika.BlockingConnection()
channel = connection.channel()
with connection, channel:
message = "hello"
next(channel.consume(queue="amq.rabbitmq.reply-to", auto_ack=True,
inactivity_timeout=0.1))
channel.basic_publish(
exchange="", routing_key="test", body=message.encode(),
properties=pika.BasicProperties(reply_to="amq.rabbitmq.reply-to"))
print("sent:", message)
for (method, properties, body) in channel.consume(
queue="amq.rabbitmq.reply-to", auto_ack=True):
handle(channel, method, properties, body)
关于python - 是否可以在 Python 中将 RabbitMQ 直接回复功能与 Pika 生成器使用者一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56842059/
我正在尝试使用包含 XPath 的选择器订阅 WebLogic JMS 消息。在 WebLogic 中,它是使用“JMS_BEA_SELECT”函数实现的。像这样的东西: session.creat
我想使用 sage 和外部 c 库。外部库已经具有用 cython 编写的 python 绑定(bind),并处理 python 的数字类和 gmp 整数之间的转换。 为了使其能够与 sage 一起使
我已经能够成功地使用 logman 来转储一些内核跟踪。但是,我希望能够以编程方式在我的应用程序中启用内核事件的实时消耗(主要是线程/进程创建/删除和文件 I/O)。完成此任务的最佳方法是什么? 最佳
我想在 FreeBSD 10.1 上编写一个 C 程序,使用 libdtrace 实现 DTrace 消费者。 我知道我需要先调用 dtrace_open() - 例如我找到了 this旧演示文稿,但
我正在尝试使用消息队列 (RabbitMQ) 在基于微服务的架构中处理请求授权。 根据这些 instructions,我已经将接收器和发送器配置为 .NET Core 中的控制台应用程序.但是,在实际
我遇到了一个场景,我必须让一个基于 Axis2 的 ws 消费者在 WebMethods 中作为 java 服务工作。我首先在 netbeans 中实现了 ws Consumer 只是为了看看它是否有
据我所知,Lambdas 用于监听事件并运行一段代码来响应这些事件。 事件必须是 AWS 服务或 HTTP 端点。 如果我有一个 RabbitMq 运行在 上的服务EC2 服务器 (不使用 SQS),
所以我正在构建一个使用 Ruby on Rails 前端和 Java 后端的 Web 应用程序。因此,基本上,当用户登录网站时,我希望在屏幕上显示该用户的所有交易数据历史记录的列表。 我需要执行此操作
我已经实现了一个 Java Servlet 过滤器,它使用 PF 提供的 Java API 从 PingFederate (PF) 服务器消耗 token 。这使得我的应用程序能够在 PF SSO 设
我有一个 WCF SOAP 使用者,它由 Visual Studio 2012 从 WSDL 实现。 WSDL 由 PeopleTools 生成。基础对象的类型为 System.ServiceMode
Oauth2 快把我逼疯了。 目前,我的 Rails 应用程序通过 Facebook 和其他 Oauth2 提供商对用户进行身份验证,这要归功于 Devise 和 OmniAuth 的美妙之处。用户无
我想获得一些关于在 Chrome 扩展和 Gmail 小工具中正确处理 Salesforce OAuth 消费者 key 和 secret 的想法。 Chrome 扩展程序本质上是用 zip 兼容格式
我正在使用 Express、Node 和 Google Drive API。我正在尝试使用 PDF 文件的 blob 响应对我的端点的 API 调用。但是当我从 Drive API 获取文件时我不想保
我是一名优秀的程序员,十分优秀!