Sha256: 013a1a9e6be5f2df004ec4f8793c7bac1f3b85195526ca6b915340ec100497ff
Contents?: true
Size: 845 Bytes
Versions: 16
Compression:
Stored size: 845 Bytes
Contents
# frozen_string_literal: true require 'activejob/retry' module Lcms module Engine module RetryDelayed extend ActiveSupport::Concern module RetryBackoffStrategy MIN_DELAY_MULTIPLIER = 1.0 MAX_DELAY_MULTIPLIER = 5.0 RETRY_DELAYES = [30.seconds, 1.minute, 3.minutes, 7.minutes].freeze def self.should_retry?(retry_attempt, exception) return false if exception.message =~ /Script error message/ && exception.message =~ /PAGE_BREAK/ retry_attempt <= RETRY_DELAYES.size end def self.retry_delay(retry_attempt, _exception) (RETRY_DELAYES[retry_attempt] || 0) * rand(MIN_DELAY_MULTIPLIER..MAX_DELAY_MULTIPLIER) end end included do include ::ActiveJob::Retry.new(strategy: RetryBackoffStrategy) end end end end
Version data entries
16 entries across 16 versions & 1 rubygems