我是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时。它显示等待消息......但从未收到消息。有人可以帮忙吗?
答案 0 :(得分:0)
RabbitMQ团队监控this mailing list,有时只回答StackOverflow上的问题。
我建议您仔细研究tutorial code并将其与您所写的内容进行比较。
由于您未提供new_task.rb
的代码,我假设您使用的代码显示为here。该代码需要一个名为task_queue
的队列,但您上面提供的代码使用名为hello
的队列。