Class: FreshConnection::ConnectionManager
- Inherits:
-
AbstractConnectionManager
- Object
- AbstractConnectionManager
- FreshConnection::ConnectionManager
- Defined in:
- lib/fresh_connection/connection_manager.rb
Instance Attribute Summary
Attributes inherited from AbstractConnectionManager
Instance Method Summary collapse
- #clear_all_connections! ⇒ Object
-
#initialize(*args) ⇒ ConnectionManager
constructor
A new instance of ConnectionManager.
- #put_aside! ⇒ Object
- #recovery? ⇒ Boolean
- #slave_connection ⇒ Object
Constructor Details
#initialize(*args) ⇒ ConnectionManager
Returns a new instance of ConnectionManager.
5 6 7 8 |
# File 'lib/fresh_connection/connection_manager.rb', line 5 def initialize(*args) super @connections = Concurrent::Map.new end |
Instance Method Details
#clear_all_connections! ⇒ Object
22 23 24 25 26 27 |
# File 'lib/fresh_connection/connection_manager.rb', line 22 def clear_all_connections! @connections.each_value do |conn| conn.disconnect! rescue nil end @connections.clear end |
#put_aside! ⇒ Object
16 17 18 19 20 |
# File 'lib/fresh_connection/connection_manager.rb', line 16 def put_aside! conn = @connections.delete(current_thread_id) return unless conn conn && conn.disconnect! rescue nil end |
#recovery? ⇒ Boolean
29 30 31 32 33 |
# File 'lib/fresh_connection/connection_manager.rb', line 29 def recovery? return false if slave_connection.active? put_aside! true end |
#slave_connection ⇒ Object
10 11 12 13 14 |
# File 'lib/fresh_connection/connection_manager.rb', line 10 def slave_connection @connections.fetch_or_store(current_thread_id) do |_| connection_factory.new_connection end end |