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.2'
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.
96
97
98
|
# File 'lib/active_job/retriable.rb', line 96
def current_exception
@current_exception
end
|
#retry_attempt ⇒ Object
106
107
108
|
# File 'lib/active_job/retriable.rb', line 106
def retry_attempt
@retry_attempt ||= 0
end
|
Class Method Details
.print_exception_backtraces_to_stderr? ⇒ Boolean
32
33
34
|
# File 'lib/active_job/retriable.rb', line 32
def self.print_exception_backtraces_to_stderr?
@print_exception_backtraces_to_stderr
end
|
.print_exceptions_to_stderr=(option) ⇒ Object
19
20
21
22
|
# File 'lib/active_job/retriable.rb', line 19
def self.print_exceptions_to_stderr=(option)
@print_exceptions_to_stderr = !!option
@print_exception_backtraces_to_stderr = option == :backtrace
end
|
.print_exceptions_to_stderr? ⇒ Boolean
28
29
30
|
# File 'lib/active_job/retriable.rb', line 28
def self.print_exceptions_to_stderr?
@print_exceptions_to_stderr
end
|
.reraise_when_retry_exhausted=(option) ⇒ Object
15
16
17
|
# File 'lib/active_job/retriable.rb', line 15
def self.reraise_when_retry_exhausted=(option)
@reraise_when_retry_exhausted = !!option
end
|
.reraise_when_retry_exhausted? ⇒ Boolean
24
25
26
|
# File 'lib/active_job/retriable.rb', line 24
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
116
117
118
119
120
|
# File 'lib/active_job/retriable.rb', line 116
def deserialize(job_data)
super job_data
self.retry_attempt = job_data['retry_attempt']
end
|
#retries_exhausted? ⇒ Boolean
98
99
100
|
# File 'lib/active_job/retriable.rb', line 98
def retries_exhausted?
retry_attempt >= (self.class.retry_max || DEFAULT_MAX)
end
|
#retry_delay ⇒ Object
102
103
104
|
# File 'lib/active_job/retriable.rb', line 102
def retry_delay
(retry_attempt ** DEFAULT_FACTOR) + (rand(30) * retry_attempt)
end
|
#serialize ⇒ Object
110
111
112
|
# File 'lib/active_job/retriable.rb', line 110
def serialize
super.update 'retry_attempt' => retry_attempt
end
|