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.



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

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.



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

def connections
  @connections
end

#expires=(value) ⇒ Object (writeonly)

Sets the attribute expires

Parameters:

  • value

    the value to set the attribute expires to.



281
282
283
# File 'lib/active_record/connection_adapters/seamless_database_pool_adapter.rb', line 281

def expires=(value)
  @expires = value
end

#failed_connectionObject (readonly)

Returns the value of attribute failed_connection.



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

def failed_connection
  @failed_connection
end

Instance Method Details

#expired?Boolean

Returns:

  • (Boolean)


289
290
291
# File 'lib/active_record/connection_adapters/seamless_database_pool_adapter.rb', line 289

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

#reconnect!Object



293
294
295
296
# File 'lib/active_record/connection_adapters/seamless_database_pool_adapter.rb', line 293

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