1

我正在使用 RabbitMq 进行通信,我只想使用一条消息并取消订阅。如何在红宝石兔子中做到这一点?我的订阅块很简单:

  queue.subscribe(block: true) do |delivery_info, properties, payload|
    puts "[consumer] #{q.name} received a message: #{payload}"
  end
4

2 回答 2

1

您现在可能已经想通了,但是对于其他人...

根据文档,您可以只使用 basic_get。例如,

conn = Bunny.new
conn.start
ch = conn.create_channel
delivery_info, properties, message = ch.basic_get("your_queue_name", :ack => true)
ch.acknowledge(delivery_info.delivery_tag)
于 2014-03-13T23:56:33.773 回答
0

另一种方法可能是使用队列的#pop方法。

conn = Bunny.new
conn.start

ch   = conn.create_channel
q = ch.queue("queue_name")
delivery_info, properties, payload = q.pop

您可以在此处找到有关它的更多详细信息

于 2017-02-01T12:25:44.553 回答