class ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
Constants
- PG_CONNECT_RETRY
- PG_QUERY_RETRY
- PG_RECONNECT_RETRY
- PG_SLEEP_RETRY
Public Instance Methods
connect()
click to toggle source
# File lib/active_record_postgresql_retry.rb, line 57 def connect begin result = old_connect @retry = nil result rescue PG::Error => ex @retry ||= 1 $log.warn "PostgreSQL connect not possible, retry ##{@retry}: #{ex}" sleep PG_SLEEP_RETRY @retry += 1 raise if @retry > PG_CONNECT_RETRY end if @retry.nil? result else connect end end
Also aliased as: old_connect
execute(sql, name=nil)
click to toggle source
# File lib/active_record_postgresql_retry.rb, line 15 def execute(sql, name=nil) begin result = old_execute(sql, name) @retry = nil result rescue PG::ConnectionBad, PG::UnableToSend => ex @retry ||= 1 $log.warn "PostgreSQL statement invalid, retrying #{sql}: #{ex}" sleep PG_SLEEP_RETRY @retry += 1 raise if @retry > PG_QUERY_RETRY end if @retry.nil? result else execute(sql, name) end end
Also aliased as: old_execute
reconnect!()
click to toggle source
# File lib/active_record_postgresql_retry.rb, line 36 def reconnect! begin result = old_reconnect! @retry = nil result rescue PG::Error => ex @retry ||= 1 $log.warn "PostgreSQL reconnect not possible, retry ##{@retry}: #{ex}" sleep PG_SLEEP_RETRY @retry += 1 raise if @retry > PG_RECONNECT_RETRY end if @retry.nil? result else reconnect! end end
Also aliased as: old_reconnect!