Class: ActiveRecord::ConnectionAdapters::MariaDbClusterPoolAdapter::AvailableConnection
- Inherits:
-
Object
- Object
- ActiveRecord::ConnectionAdapters::MariaDbClusterPoolAdapter::AvailableConnection
- Defined in:
- lib/active_record/connection_adapters/maria_db_cluster_pool_adapter.rb
Overview
This simple class puts an expire time on an array of connections. It is used so the a connection to a down database won’t try to reconnect over and over.
Instance Attribute Summary collapse
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#expires ⇒ Object
writeonly
Sets the attribute expires.
-
#failed_connection ⇒ Object
writeonly
Sets the attribute failed_connection.
Instance Method Summary collapse
- #expired? ⇒ Boolean
- #failed? ⇒ Boolean
-
#initialize(connection, failed_connection = false, expires = nil) ⇒ AvailableConnection
constructor
A new instance of AvailableConnection.
- #reconnect! ⇒ Object
Constructor Details
#initialize(connection, failed_connection = false, expires = nil) ⇒ AvailableConnection
Returns a new instance of AvailableConnection.
189 190 191 192 193 |
# File 'lib/active_record/connection_adapters/maria_db_cluster_pool_adapter.rb', line 189 def initialize(connection, failed_connection = false, expires = nil) @connection = connection @failed_connection = failed_connection @expires = expires end |
Instance Attribute Details
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
185 186 187 |
# File 'lib/active_record/connection_adapters/maria_db_cluster_pool_adapter.rb', line 185 def connection @connection end |
#expires=(value) ⇒ Object (writeonly)
Sets the attribute expires
187 188 189 |
# File 'lib/active_record/connection_adapters/maria_db_cluster_pool_adapter.rb', line 187 def expires=(value) @expires = value end |
#failed_connection=(value) ⇒ Object (writeonly)
Sets the attribute failed_connection
186 187 188 |
# File 'lib/active_record/connection_adapters/maria_db_cluster_pool_adapter.rb', line 186 def failed_connection=(value) @failed_connection = value end |
Instance Method Details
#expired? ⇒ Boolean
195 196 197 |
# File 'lib/active_record/connection_adapters/maria_db_cluster_pool_adapter.rb', line 195 def expired? @expires ? @expires <= Time.now : false end |
#failed? ⇒ Boolean
199 200 201 |
# File 'lib/active_record/connection_adapters/maria_db_cluster_pool_adapter.rb', line 199 def failed? @failed_connection end |
#reconnect! ⇒ Object
203 204 205 206 207 208 209 210 211 |
# File 'lib/active_record/connection_adapters/maria_db_cluster_pool_adapter.rb', line 203 def reconnect! @connection.reconnect! if @connection.active? @failed_connection = false @expires = nil else raise DatabaseConnectionError.new end end |