Class: Draisine::JobBase
Instance Method Summary
collapse
deserialize
Instance Method Details
20
21
|
# File 'lib/draisine/jobs/job_base.rb', line 20
def _perform(*args)
end
|
#deserialize(job_data) ⇒ Object
35
36
37
38
|
# File 'lib/draisine/jobs/job_base.rb', line 35
def deserialize(job_data)
super
@retry_attempt = job_data.fetch('_retry_attempt', 0)
end
|
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/draisine/jobs/job_base.rb', line 5
def perform(*args)
_perform(*args)
rescue Exception => ex
logger.error "#{ex.class}: #{ex}\n#{ex.backtrace.join("\n")}"
if retry_attempt < retries_count
@retry_attempt = retry_attempt + 1
logger.error "Retrying (attempt #{retry_attempt})"
retry_job
else
logger.error "Too many attempts, no more retries"
Draisine.job_error_handler.call(ex, self, arguments)
end
end
|
#retry_attempt ⇒ Object
27
28
29
|
# File 'lib/draisine/jobs/job_base.rb', line 27
def retry_attempt
@retry_attempt ||= 0
end
|
#serialize ⇒ Object
31
32
33
|
# File 'lib/draisine/jobs/job_base.rb', line 31
def serialize
super.merge('_retry_attempt' => retry_attempt)
end
|