1

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

4

1 回答 1

2

最后我找到了。

在队列中,我们可以使用这样的标题属性进行发布,

在发送.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"} 
    )

在接收.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”。

于 2013-08-09T09:50:01.153 回答