Class: Qless::Middleware::RequeueExceptions::RequeueableException

Inherits:
Struct
  • Object
show all
Defined in:
lib/qless/middleware/requeue_exceptions.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#delay_minObject

Returns the value of attribute delay_min

Returns:

  • (Object)

    the current value of delay_min



20
21
22
# File 'lib/qless/middleware/requeue_exceptions.rb', line 20

def delay_min
  @delay_min
end

#delay_spanObject

Returns the value of attribute delay_span

Returns:

  • (Object)

    the current value of delay_span



20
21
22
# File 'lib/qless/middleware/requeue_exceptions.rb', line 20

def delay_span
  @delay_span
end

#klassObject

Returns the value of attribute klass

Returns:

  • (Object)

    the current value of klass



20
21
22
# File 'lib/qless/middleware/requeue_exceptions.rb', line 20

def klass
  @klass
end

#max_attemptsObject

Returns the value of attribute max_attempts

Returns:

  • (Object)

    the current value of max_attempts



20
21
22
# File 'lib/qless/middleware/requeue_exceptions.rb', line 20

def max_attempts
  @max_attempts
end

Class Method Details

.from_splat_and_options(*klasses, options) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/qless/middleware/requeue_exceptions.rb', line 21

def self.from_splat_and_options(*klasses, options)
  delay_range = options.fetch(:delay_range)
  delay_min = Float(delay_range.min)
  delay_span = Float(delay_range.max) - Float(delay_range.min)
  max_attempts = options.fetch(:max_attempts)
  klasses.map do |klass|
    new(klass, delay_min, delay_span, max_attempts)
  end
end

Instance Method Details

#delayObject



31
32
33
# File 'lib/qless/middleware/requeue_exceptions.rb', line 31

def delay
  delay_min + Random.rand(delay_span)
end

#raise_if_exhausted_requeues(error, requeues) ⇒ Object



35
36
37
# File 'lib/qless/middleware/requeue_exceptions.rb', line 35

def raise_if_exhausted_requeues(error, requeues)
  raise error if requeues >= max_attempts
end