Module: MariaDbClusterPool::ConnectTimeout

Defined in:
lib/maria_db_cluster_pool/connect_timeout.rb

Overview

This module is mixed into connection adapters to allow the reconnect! method to timeout if the IP address becomes unreachable. The default timeout is 1 second, but you can change it by setting the connect_timeout parameter in the adapter configuration.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#connect_timeoutObject

Returns the value of attribute connect_timeout.



8
9
10
# File 'lib/maria_db_cluster_pool/connect_timeout.rb', line 8

def connect_timeout
  @connect_timeout
end

Class Method Details

.included(base) ⇒ Object



10
11
12
# File 'lib/maria_db_cluster_pool/connect_timeout.rb', line 10

def self.included(base)
  base.alias_method_chain :reconnect!, :connect_timeout
end

Instance Method Details

#reconnect_with_connect_timeout!Object



14
15
16
17
18
19
20
21
22
# File 'lib/maria_db_cluster_pool/connect_timeout.rb', line 14

def reconnect_with_connect_timeout!
  begin
    timeout(connect_timeout || 1) do
      reconnect_without_connect_timeout!
    end
  rescue Timeout::Error
    raise ActiveRecord::ConnectionTimeoutError.new("reconnect timed out")
  end
end