Module: ActiveJob::Retriable
- Extended by:
- ActiveSupport::Concern
- Includes:
- ActiveSupport::Callbacks
- Defined in:
- lib/active_job/retriable.rb,
lib/active_job/retriable/version.rb,
lib/active_job/retriable/test_helper.rb,
lib/active_job/retriable/test_adapater.rb
Defined Under Namespace
Modules: ClassMethods, TestHelper
Classes: TestAdapter
Constant Summary
collapse
- BASE_TAG =
self.name
- DEFAULT_FACTOR =
4
- DEFAULT_MAX =
25
- VERSION =
'5.0.0'
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#current_exception ⇒ Object
Returns the value of attribute current_exception.
75
76
77
|
# File 'lib/active_job/retriable.rb', line 75
def current_exception
@current_exception
end
|
#retry_attempt ⇒ Object
85
86
87
|
# File 'lib/active_job/retriable.rb', line 85
def retry_attempt
@retry_attempt ||= 0
end
|
Class Method Details
.reraise_when_retry_exhausted=(option) ⇒ Object
14
15
16
|
# File 'lib/active_job/retriable.rb', line 14
def self.reraise_when_retry_exhausted=(option)
@reraise_when_retry_exhausted = !!option
end
|
.reraise_when_retry_exhausted? ⇒ Boolean
18
19
20
|
# File 'lib/active_job/retriable.rb', line 18
def self.reraise_when_retry_exhausted?
@reraise_when_retry_exhausted
end
|
Instance Method Details
#deserialize(job_data) ⇒ Object
Rails 5 deserialization approach NOTE the conditional will be removed with Rails 5
95
96
97
98
99
|
# File 'lib/active_job/retriable.rb', line 95
def deserialize(job_data)
super job_data
self.retry_attempt = job_data['retry_attempt']
end
|
#retries_exhausted? ⇒ Boolean
77
78
79
|
# File 'lib/active_job/retriable.rb', line 77
def retries_exhausted?
retry_attempt >= (self.class.retry_max || DEFAULT_MAX)
end
|
#retry_delay ⇒ Object
81
82
83
|
# File 'lib/active_job/retriable.rb', line 81
def retry_delay
(retry_attempt ** DEFAULT_FACTOR) + (rand(30) * retry_attempt)
end
|
#serialize ⇒ Object
89
90
91
|
# File 'lib/active_job/retriable.rb', line 89
def serialize
super.update 'retry_attempt' => retry_attempt
end
|