Class: TingYun::Agent::Database::ConnectionManager
- Inherits:
-
Object
- Object
- TingYun::Agent::Database::ConnectionManager
- Includes:
- Singleton
- Defined in:
- lib/ting_yun/agent/database/connection_manager.rb
Overview
Returns a cached connection for a given ActiveRecord configuration - these are stored or reopened as needed, and if we cannot get one, we ignore it and move on without explaining the sql
Instance Method Summary collapse
-
#close_connections ⇒ Object
Closes all the connections in the internal connection cache.
- #get_connection(config, &connector) ⇒ Object
Instance Method Details
#close_connections ⇒ Object
Closes all the connections in the internal connection cache
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/ting_yun/agent/database/connection_manager.rb', line 29 def close_connections @connections ||= {} @connections.values.each do |connection| begin connection.disconnect! rescue end end @connections = {} end |
#get_connection(config, &connector) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/ting_yun/agent/database/connection_manager.rb', line 13 def get_connection(config, &connector) @connections ||= {} connection = @connections[config] return connection if connection begin @connections[config] = connector.call(config) rescue => e ::TingYun::Agent.logger.error("Caught exception trying to get connection to DB for explain.", e) nil end end |