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
start
リクエストが来るたびに呼び出す必要がないように、AMQP 接続を開いたままにしておく方法はありますか?
Rabbit MQ への接続を開くのは非効率的だと思いますが、永続的な接続にコード ブロックを渡す方法が見つかりませんでした。