【问题标题】:How to send value with message on bunny queue on rabbitmp如何在rabbitmq上的兔子队列上发送带有消息的值
【发布时间】:2025-11-26 21:25:04
【问题描述】:

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

【问题讨论】:

    标签: queue rabbitmq message-queue


    【解决方案1】:

    终于找到了。

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

    在 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”。

    【讨论】:

      最近更新 更多