我想在rabbitmq服务器上的bunny消息队列中发送带有消息的值。是否有可能这样做。 提前致谢。
答案 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”。