Class: ActiveRecord::ConnectionAdapters::SeamlessDatabasePoolAdapter::AvailableConnections

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/connection_adapters/seamless_database_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

Instance Method Summary collapse

Constructor Details

#initialize(connections, failed_connection = nil, expires = nil) ⇒ AvailableConnections

Returns a new instance of AvailableConnections.



273
274
275
276
277
# File 'lib/active_record/connection_adapters/seamless_database_pool_adapter.rb', line 273

def initialize(connections, failed_connection = nil, expires = nil)
  @connections = connections
  @failed_connection = failed_connection
  @expires = expires
end

Instance Attribute Details

#connectionsObject (readonly)

Returns the value of attribute connections.



270
271
272
# File 'lib/active_record/connection_adapters/seamless_database_pool_adapter.rb', line 270

def connections
  @connections
end

#expires=(value) ⇒ Object (writeonly)

Sets the attribute expires

Parameters:

  • the value to set the attribute expires to.



271
272
273
# File 'lib/active_record/connection_adapters/seamless_database_pool_adapter.rb', line 271

def expires=(value)
  @expires = value
end

#failed_connectionObject (readonly)

Returns the value of attribute failed_connection.



270
271
272
# File 'lib/active_record/connection_adapters/seamless_database_pool_adapter.rb', line 270

def failed_connection
  @failed_connection
end

Instance Method Details

#expired?Boolean

Returns:



279
280
281
# File 'lib/active_record/connection_adapters/seamless_database_pool_adapter.rb', line 279

def expired?
  @expires ? @expires <= Time.now : false
end

#reconnect!Object

Raises:



283
284
285
286
# File 'lib/active_record/connection_adapters/seamless_database_pool_adapter.rb', line 283

def reconnect!
  failed_connection.reconnect!
  raise DatabaseConnectionError.new unless failed_connection.active?
end