module ActiveRecordRetriable::ClassMethods
Public Instance Methods
transaction(retry_on: nil, num_retries: Rails.configuration.active_record.default_transaction_retries, before_retry: nil, **options, &block)
click to toggle source
Calls superclass method
# File lib/active_record_retriable/retriable.rb, line 18 def transaction(retry_on: nil, num_retries: Rails.configuration.active_record.default_transaction_retries, before_retry: nil, **options, &block) return super(**options, &block) if retry_on.blank? retry_on = Array.wrap(retry_on) total_retries = num_retries num_retries = 0 begin super(**options, &block) rescue *retry_on => e num_retries += 1 if total_retries.nil? || num_retries <= total_retries before_retry&.call(num_retries, e) retry end raise end end