Class: ActiveRecordDeadlockHandler::Configuration
- Inherits:
-
Object
- Object
- ActiveRecordDeadlockHandler::Configuration
- 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
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
- #validate! ⇒ Object
Constructor Details
#initialize ⇒ Configuration
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
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 |