class PgDice::QueryExecutor
Wrapper class around pg_connection to reset connection on PG errors
Attributes
logger[R]
Public Class Methods
new(logger:, connection_supplier:)
click to toggle source
# File lib/pgdice/query_executor.rb, line 9 def initialize(logger:, connection_supplier:) @logger = logger @connection_supplier = connection_supplier end
Public Instance Methods
call(query)
click to toggle source
# File lib/pgdice/query_executor.rb, line 14 def call(query) @connection_supplier.call.exec(query) rescue PG::Error => e logger.error { "Caught error: #{e}. Going to reset connection and try again" } @connection_supplier.call.reset @connection_supplier.call.exec(query) end