Class: Qless::Middleware::RequeueExceptions::RequeueableException
- Inherits:
-
Struct
- Object
- Struct
- Qless::Middleware::RequeueExceptions::RequeueableException
- Defined in:
- lib/qless/middleware/requeue_exceptions.rb
Instance Attribute Summary collapse
-
#delay_min ⇒ Object
Returns the value of attribute delay_min.
-
#delay_span ⇒ Object
Returns the value of attribute delay_span.
-
#klass ⇒ Object
Returns the value of attribute klass.
-
#max_attempts ⇒ Object
Returns the value of attribute max_attempts.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#delay_min ⇒ Object
Returns the value of attribute delay_min
20 21 22 |
# File 'lib/qless/middleware/requeue_exceptions.rb', line 20 def delay_min @delay_min end |
#delay_span ⇒ Object
Returns the value of attribute delay_span
20 21 22 |
# File 'lib/qless/middleware/requeue_exceptions.rb', line 20 def delay_span @delay_span end |
#klass ⇒ Object
Returns the value of attribute klass
20 21 22 |
# File 'lib/qless/middleware/requeue_exceptions.rb', line 20 def klass @klass end |
#max_attempts ⇒ Object
Returns the value of attribute 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.(*klasses, ) delay_range = .fetch(:delay_range) delay_min = Float(delay_range.min) delay_span = Float(delay_range.max) - Float(delay_range.min) max_attempts = .fetch(:max_attempts) klasses.map do |klass| new(klass, delay_min, delay_span, max_attempts) end end |
Instance Method Details
#delay ⇒ Object
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 |