如何在rabbitmq上发送带有兔子队列消息的值

时间:2013-08-07 12:37:23

标签: queue rabbitmq message-queue

我想在rabbitmq服务器上的bunny消息队列中发送带有消息的值。是否有可能这样做。 提前致谢。

1 个答案:

答案 0 :(得分:2)

终于找到了它。

在队列中,我们可以使用像这样的标题属性

发布 在send.rb中

conn = Bunny.new
conn.start

ch= conn.create_channel
q = ch.queue("QueueName")

msg  = "Message want to send" 

q.publish(
    msg, 
    :persistent => true, 
    :headers => { :user_id => "10", :user_name => "xxx"} 
    )

在receive.rb

conn = Bunny.new
conn.start

 ch = conn.create_channel
 q = ch.queue("QueueName")

 ch.prefetch(1)

 begin

q.subscribe(:ack => true, :block => true) do |delivery_info, properties, body|

  puts "Message : #{body}"
  puts "To UserId : #{properties[:headers]["user_id"].to_s}\n"
  puts "To UserId : #{properties[:headers]["user_name"].to_s}\n"

  ch.ack(delivery_info.delivery_tag)

end

rescue => e

puts "Error #{e.to_s}"
conn.close

end

我们可以在接收端获得userId 10和用户名“XXX”。