Я использую RabbitMQ и ruby-amqp с Rails. Когда сообщение получено контроллером, я выполняю следующее:
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 неэффективно, однако я не нашел способа передать блок кода в постоянное соединение.