如何在 golang 的 rabbitmq 客户端检查通道是否仍在工作?

我正在将这个库用于我的程序。在重新初始化之前,我应该如何确保我用于消费和/或生产的渠道仍在工作?例如,在 ruby 中,我可以简单地执行以下操作:


bunny_client = Bunny.new({....})

bunny_client.start

启动客户端,以及


if not bunny_client or bunny_client.status != :connected

    # re-initialize the client

如何使用 Streadway 的 amqp 客户端执行此操作?


绝地无双
浏览 266回答 2
2回答

智慧大石

的QueueDeclare和QueueInspect功能可以提供等同的功能。根据文档:QueueInspect:使用此方法可检查队列中有多少未确认的消息,有多少消费者正在接收传递,以及是否已存在具有此名称的队列。如果此名称的队列存在,则使用 Channel.QueueDeclare 检查它是否使用特定参数声明。如果此名称的队列不存在,则会返回错误并关闭通道。QueueDeclare:QueueDeclare 声明了一个队列来保存消息并传递给消费者。如果队列不存在,则声明会创建一个队列,或者确保现有队列匹配相同的参数。看起来Durable这些文档中也有一些关于队列(幸存服务器重新启动)的好信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go