Module: ActionSubscriber::RabbitConnection
- Defined in:
- lib/action_subscriber/rabbit_connection.rb
Constant Summary collapse
- SUBSCRIBER_CONNECTION_MUTEX =
::Mutex.new
- NETWORK_RECOVERY_INTERVAL =
1.freeze
Class Method Summary collapse
- .setup_connection(name, settings) ⇒ Object
- .subscriber_connected? ⇒ Boolean
- .subscriber_disconnect! ⇒ Object
- .with_connection(name) ⇒ Object
Class Method Details
.setup_connection(name, settings) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/action_subscriber/rabbit_connection.rb', line 8 def self.setup_connection(name, settings) SUBSCRIBER_CONNECTION_MUTEX.synchronize do fail ArgumentError, "a #{name} connection already exists" if subscriber_connections[name] subscriber_connections[name] = create_connection(settings) end end |
.subscriber_connected? ⇒ Boolean
15 16 17 18 19 |
# File 'lib/action_subscriber/rabbit_connection.rb', line 15 def self.subscriber_connected? SUBSCRIBER_CONNECTION_MUTEX.synchronize do subscriber_connections.all?{|_name, connection| connection.connected?} end end |
.subscriber_disconnect! ⇒ Object
21 22 23 24 25 26 |
# File 'lib/action_subscriber/rabbit_connection.rb', line 21 def self.subscriber_disconnect! SUBSCRIBER_CONNECTION_MUTEX.synchronize do subscriber_connections.each{|_name, connection| connection.close} @subscriber_connections = {} end end |
.with_connection(name) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/action_subscriber/rabbit_connection.rb', line 28 def self.with_connection(name) SUBSCRIBER_CONNECTION_MUTEX.synchronize do fail ArgumentError, "there is no connection named #{name}" unless subscriber_connections[name] yield(subscriber_connections[name]) end end |