在macy没有收到消息的ruby中的rabbitmq

时间:2018-03-14 18:32:33

标签: ruby-on-rails ruby rabbitmq

我是rabbitmq的新手。我尝试使用ruby和rabbitmq来关注mac上的教程。我创建了两个.rb文件。

worker.rb

require 'bunny'
connection=Bunny.new
connection.start
channel= connection.create_channel
queue=channel.queue('hello')

begin
  puts ' Waiting for messages. To exit press CTRL+C'
  queue.subscribe(block: true) do |delivery_info, _properties, body|
  puts " [x] Received #{body}"
  # imitate some work
  sleep body.count('.').to_i
  puts ' [x] Done'
end
rescue Interrupt => _
  conn.close

  exit(0)
end

和receive.rb

 require 'bunny'
    connection=Bunny.new
    connection.start
    channel= connection.create_channel
    queue=channel.queue('hello')
    begin
      puts ' Waiting for messages. To exit press CTRL+C'
      queue.subscribe(block: true) do |_delivery_info, _properties, body|
        puts "  Received #{body}"
    end
rescue Interrupt => _
  conn.close

  exit(0)
end

rabbitmq服务器已打开。当我运行ruby new_task.rb时,我看到输出[x]发送Hello World!,这是预期的。当我运行ruby worker.rb时。它显示等待消息......但从未收到消息。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

RabbitMQ团队监控this mailing list,有时只回答StackOverflow上的问题。

我建议您仔细研究tutorial code并将其与您所写的内容进行比较。

由于您未提供new_task.rb的代码,我假设您使用的代码显示为here。该代码需要一个名为task_queue的队列,但您上面提供的代码使用名为hello的队列。