Using a separate admin '/' vhost login

and shutting down more cleanly.
This commit is contained in:
Dan Buch 2012-11-19 22:37:23 -05:00
parent 0e5566367c
commit 2bf7d416e2

View File

@ -17,20 +17,29 @@ class Sylvilagus::Ch03::LogListeners
def main def main
factory = ConnectionFactory.new factory = ConnectionFactory.new
factory.uri = ENV.fetch('SYLVILAGUS_AMQP_URI') amqp_uri = ENV.fetch('SYLVILAGUS_ROOT_ADMIN_AMQP_URI')
conn = factory.new_connection factory.uri = amqp_uri
puts "Getting connection for #{amqp_uri.inspect}..."
@conn = factory.new_connection
trap :INT do trap :INT do
conn.close begin
@conn.close
exit 1 exit 1
rescue NativeException
exit 2
end
end end
channel = conn.create_channel puts 'Getting channel...'
channel = @conn.create_channel
puts 'Declaring queues...'
errors_queue = channel.queue_declare.get_queue errors_queue = channel.queue_declare.get_queue
warnings_queue = channel.queue_declare.get_queue warnings_queue = channel.queue_declare.get_queue
info_queue = channel.queue_declare.get_queue info_queue = channel.queue_declare.get_queue
puts "Binding queues to 'amq.rabbitmq.log' exchange..."
channel.queue_bind(errors_queue, 'amq.rabbitmq.log', 'error') channel.queue_bind(errors_queue, 'amq.rabbitmq.log', 'error')
channel.queue_bind(warnings_queue, 'amq.rabbitmq.log', 'warning') channel.queue_bind(warnings_queue, 'amq.rabbitmq.log', 'warning')
channel.queue_bind(info_queue, 'amq.rabbitmq.log', 'info') channel.queue_bind(info_queue, 'amq.rabbitmq.log', 'info')
@ -39,6 +48,7 @@ class Sylvilagus::Ch03::LogListeners
warnings_consumer = LogConsumer.new(channel) warnings_consumer = LogConsumer.new(channel)
info_consumer = LogConsumer.new(channel) info_consumer = LogConsumer.new(channel)
puts 'Setting up consumers...'
channel.basic_consume(errors_queue, false, errors_consumer) channel.basic_consume(errors_queue, false, errors_consumer)
channel.basic_consume(warnings_queue, false, warnings_consumer) channel.basic_consume(warnings_queue, false, warnings_consumer)
channel.basic_consume(info_queue, false, info_consumer) channel.basic_consume(info_queue, false, info_consumer)
@ -47,7 +57,10 @@ class Sylvilagus::Ch03::LogListeners
sleep 1 sleep 1
end end
ensure ensure
conn.close begin
@conn.close if @conn
rescue NativeException
end
end end
end end