Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 仅从rabbitmq队列获取一条消息并取消订阅_Ruby_Rabbitmq_Bunny - Fatal编程技术网

Ruby 仅从rabbitmq队列获取一条消息并取消订阅

Ruby 仅从rabbitmq队列获取一条消息并取消订阅,ruby,rabbitmq,bunny,Ruby,Rabbitmq,Bunny,我使用RabbitMq进行通信,我只想使用一条消息并取消订阅。用ruby bunny怎么做?我的订阅块非常简单: queue.subscribe(block: true) do |delivery_info, properties, payload| puts "[consumer] #{q.name} received a message: #{payload}" end 你现在可能已经明白了,但对其他人来说 根据,你可以只使用基本的。比如说, conn = Bunny.ne

我使用RabbitMq进行通信,我只想使用一条消息并取消订阅。用ruby bunny怎么做?我的订阅块非常简单:

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

你现在可能已经明白了,但对其他人来说

根据,你可以只使用基本的。比如说,

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)

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

conn = Bunny.new
conn.start

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