问题描述
我使用 github.com/streadway/amqp
我的程序.在重新初始化之前,我应该如何确保我用于消费和/或生产的渠道仍在工作?
例如,在 ruby 中,我可以简单地做:
bunny_client = Bunny.new({....})bunny_client.start
启动客户端,以及
如果不是 bunny_client 或 bunny_client.status != :connected# 重新初始化客户端
如何使用 streadway/amqp
客户端执行此操作?
QueueDeclare
和 QueueInspect
函数可以提供等效的功能.根据文档:
使用此方法检查队列中有多少未确认的消息,有多少消费者正在接收交付,以及是否已存在同名队列.
如果这个名字的队列存在,使用Channel.QueueDeclare检查它是否用特定的参数声明.
如果这个名字的队列不存在,将返回错误并关闭通道.
QueueDeclare 声明了一个队列来保存消息并传递给消费者.如果队列不存在,则声明会创建一个队列,或者确保现有队列匹配相同的参数.
看起来这些文档中也有一些关于 Durable
队列(幸存的服务器重启)的好信息.
I'm using github.com/streadway/amqp
for my program. How should I make sure that the channel I'm using for consumption and/or production is still working, before re-initializing it?
For example, in ruby, I could simply do:
bunny_client = Bunny.new({....})
bunny_client.start
to start the client, and
if not bunny_client or bunny_client.status != :connected
# re-initialize the client
How to do this with streadway/amqp
client?
The QueueDeclare
and QueueInspect
functions may provide equivalent functionality. According to the docs:
It looks like there's some good info regarding Durable
queues (survive server restarts) in those docs as well.
这篇关于如何检查通道是否仍在streadway/amqp RabbitMQ客户端中工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!