Module: Sequel::ConnectionValidator

Defined in:
lib/sequel/extensions/connection_validator.rb

Defined Under Namespace

Classes: Retry

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#connection_validation_timeoutObject

The number of seconds that need to pass since connection checkin before attempting to validate the connection when checking it out from the pool. Defaults to 3600 seconds (1 hour).



60
61
62
# File 'lib/sequel/extensions/connection_validator.rb', line 60

def connection_validation_timeout
  @connection_validation_timeout
end

Class Method Details

.extended(pool) ⇒ Object

Initialize the data structures used by this extension.



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/sequel/extensions/connection_validator.rb', line 63

def self.extended(pool)
  case pool.pool_type
  when :single, :sharded_single
    raise Error, "cannot load connection_validator extension if using single or sharded_single connection pool"
  end

  pool.instance_exec do
    sync do
      @connection_timestamps ||= {}
      @connection_validation_timeout ||= 3600
    end
  end

  # Make sure the valid connection SQL query is precached,
  # otherwise it's possible it will happen at runtime. While
  # it should work correctly at runtime, it's better to avoid
  # the possibility of failure altogether.
  pool.db.send(:valid_connection_sql)
end