Class: ActiveJob::Retry::VariableBackoffStrategy

Inherits:
ConstantBackoffStrategy show all
Defined in:
lib/active_job/retry/variable_backoff_strategy.rb

Instance Method Summary collapse

Methods inherited from ConstantBackoffStrategy

#should_retry?

Constructor Details

#initialize(options) ⇒ VariableBackoffStrategy

Returns a new instance of VariableBackoffStrategy.



7
8
9
10
11
12
13
14
# File 'lib/active_job/retry/variable_backoff_strategy.rb', line 7

def initialize(options)
  super(options)
  VariableOptionsValidator.new(options).validate!
  @retry_limit          = options.fetch(:delays).length + 1
  @retry_delays         = options.fetch(:delays)
  @min_delay_multiplier = options.fetch(:min_delay_multiplier, 1.0)
  @max_delay_multiplier = options.fetch(:max_delay_multiplier, 1.0)
end

Instance Method Details

#retry_delay(attempt, _exception) ⇒ Object



16
17
18
# File 'lib/active_job/retry/variable_backoff_strategy.rb', line 16

def retry_delay(attempt, _exception)
  (retry_delays[attempt - 1] * delay_multiplier).to_i
end