Class: ActiveRecordDeadlockHandler::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record_deadlock_handler/configuration.rb

Constant Summary collapse

DEFAULTS =
{
  max_retries:             3,
  base_delay:              0.1,
  max_delay:               5.0,
  jitter_factor:           0.25,
  backoff_multiplier:      2.0,
  logger:                  nil,
  log_level:               :warn,
  auto_patch:              true,
  reraise_after_exhaustion: true
}.freeze

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



19
20
21
# File 'lib/active_record_deadlock_handler/configuration.rb', line 19

def initialize
  DEFAULTS.each { |k, v| public_send(:"#{k}=", v) }
end

Instance Method Details

#validate!Object

Raises:

  • (ArgumentError)


23
24
25
26
27
28
29
30
# File 'lib/active_record_deadlock_handler/configuration.rb', line 23

def validate!
  raise ArgumentError, "max_retries must be >= 0" unless max_retries >= 0
  raise ArgumentError, "base_delay must be > 0"   unless base_delay > 0
  raise ArgumentError, "max_delay must be >= base_delay" unless max_delay >= base_delay
  raise ArgumentError, "jitter_factor must be between 0 and 1" unless (0.0..1.0).cover?(jitter_factor)
  raise ArgumentError, "backoff_multiplier must be >= 1" unless backoff_multiplier >= 1
  raise ArgumentError, "log_level must be a symbol" unless log_level.is_a?(Symbol)
end