instance method determine_delay

Ruby on Rails 8.1.2

Since v5.2.8.1 Private

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

determine_delay(seconds_or_duration_or_algorithm:, executions:, jitter: JITTER_DEFAULT)

No documentation comment.

Parameters

seconds_or_duration_or_algorithm keyreq
executions keyreq
jitter key = JITTER_DEFAULT
Source
# File activejob/lib/active_job/exceptions.rb, line 171
      def determine_delay(seconds_or_duration_or_algorithm:, executions:, jitter: JITTER_DEFAULT)
        jitter = jitter == JITTER_DEFAULT ? self.class.retry_jitter : (jitter || 0.0)

        case seconds_or_duration_or_algorithm
        when  :polynomially_longer
          # This delay uses a polynomial backoff strategy, which was previously misnamed as exponential
          delay = executions**4
          delay_jitter = determine_jitter_for_delay(delay, jitter)
          delay + delay_jitter + 2
        when ActiveSupport::Duration, Integer
          delay = seconds_or_duration_or_algorithm.to_i
          delay_jitter = determine_jitter_for_delay(delay, jitter)
          delay + delay_jitter
        when Proc
          algorithm = seconds_or_duration_or_algorithm
          algorithm.call(executions)
        else
          raise "Couldn't determine a delay based on #{seconds_or_duration_or_algorithm.inspect}"
        end
      end

Defined in activejob/lib/active_job/exceptions.rb line 171 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveJob::Exceptions

Type at least 2 characters to search.

↑↓ navigate · open · esc close