Class: FreshConnection::ConnectionManager
Instance Attribute Summary
#replica_group
Instance Method Summary
collapse
method_added, #slave_group
Constructor Details
Returns a new instance of ConnectionManager.
7
8
9
10
|
# File 'lib/fresh_connection/connection_manager.rb', line 7
def initialize(*args)
super
@connections = Concurrent::Map.new
end
|
Instance Method Details
#clear_all_connections! ⇒ Object
24
25
26
27
28
29
|
# File 'lib/fresh_connection/connection_manager.rb', line 24
def clear_all_connections!
@connections.each_value do |conn|
conn.disconnect! rescue nil
end
@connections.clear
end
|
#put_aside! ⇒ Object
18
19
20
21
22
|
# File 'lib/fresh_connection/connection_manager.rb', line 18
def put_aside!
conn = @connections.delete(current_thread_id)
return unless conn
conn && conn.disconnect! rescue nil
end
|
#recovery? ⇒ Boolean
31
32
33
34
35
|
# File 'lib/fresh_connection/connection_manager.rb', line 31
def recovery?
return false if replica_connection.active?
put_aside!
true
end
|
#replica_connection ⇒ Object
12
13
14
15
16
|
# File 'lib/fresh_connection/connection_manager.rb', line 12
def replica_connection
@connections.fetch_or_store(current_thread_id) do |_|
connection_factory.new_connection
end
end
|