我在 Rails 中使用 RabbitMQ 和ruby-amqp。当控制器收到消息时,我执行以下操作:
def create
AMQP.start("amqp://localhost:5672") do |connection|
channel = AMQP::Channel.new(connection)
exchange = channel.direct("")
exchange.publish("some msg", :routing_key => "some key")
EventMachine.add_timer(2) do
exchange.delete
connection.close { EventMachine.stop }
end
end
end
- 有没有办法让 AMQP 连接保持打开状态,这样我就不必在
start
每次请求进入时都调用?
我假设打开到 Rabbit MQ 的连接效率很低,但是我还没有找到将代码块传递给持久连接的方法。