ruby - 在不提供其所有属性的情况下获取队列

标签 ruby queue rabbitmq message-queue bunny

我正在尝试为现有队列编写消费者。

RabbbitMQ 在一个单独的实例中运行,名为“org-queue”的队列已经创建并绑定(bind)到一个交换器。 org-queue 是一个持久队列,它还有一些额外的属性。

现在我需要从这个队列接收消息。 我使用下面的代码来获取队列的实例

conn = Bunny.new
conn.start
ch = conn.create_channel    
q = ch.queue("org-queue")

它抛出一个错误,指出不同的耐用属性。默认情况下,Bunny 似乎使用 durable = false。所以我添加了 durable true 作为参数。现在它说明了其他参数之间的区别。我是否需要指定所有参数才能连接到它?由于rabbitMQ由不同的环境维护,我很难获得所有的属性。

有没有办法获取队列列表并在客户端中监听所需的队列,而不是通过所有参数连接到队列。

最佳答案

你试过 queue() 的 :passive=true 参数吗?一个真实的例子是 rabbitmq plugin of logstash . :passive 表示只检查队列是否存在,而不是在使用消息时声明它。

关于ruby - 在不提供其所有属性的情况下获取队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35430106/

相关文章:

Python 线程/队列问题

java - Spring AMQP错误: Listener method could not be invoked with the incoming message

ruby - Chef Recipe 的执行顺序是什么

ruby-on-rails - 从键创建新的数组数组

java - 在 Java 中合并队列

algorithm - 删除队列中的最后一个元素

java - PyCharm 和 RubyMine、JRE 文件夹有问题吗?

ruby - 为什么 String.tap 不返回修改后的字符串?

rabbitmq - 无法使用 MessageProperties 将 header 设置为 AMQP 消息

python - 是否可以在 Celery 中使用 pika 代替 librabbitmq