Class: Rjob::JobProcessor
- Inherits:
-
Object
- Object
- Rjob::JobProcessor
- Defined in:
- lib/rjob/job_processor.rb
Overview
Processes one single job.
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
-
#error ⇒ Object
readonly
Returns the value of attribute error.
-
#job ⇒ Object
readonly
Returns the value of attribute job.
-
#job_str ⇒ Object
readonly
Returns the value of attribute job_str.
Instance Method Summary collapse
-
#initialize(context, job_str) ⇒ JobProcessor
constructor
A new instance of JobProcessor.
- #run ⇒ Object
- #stop_retry? ⇒ Boolean
- #success? ⇒ Boolean
Constructor Details
#initialize(context, job_str) ⇒ JobProcessor
Returns a new instance of JobProcessor.
10 11 12 13 14 15 16 |
# File 'lib/rjob/job_processor.rb', line 10 def initialize(context, job_str) @context = context @job_str = job_str @error = nil @force_dont_retry = false @success = false end |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
5 6 7 |
# File 'lib/rjob/job_processor.rb', line 5 def context @context end |
#error ⇒ Object (readonly)
Returns the value of attribute error.
6 7 8 |
# File 'lib/rjob/job_processor.rb', line 6 def error @error end |
#job ⇒ Object (readonly)
Returns the value of attribute job.
8 9 10 |
# File 'lib/rjob/job_processor.rb', line 8 def job @job end |
#job_str ⇒ Object (readonly)
Returns the value of attribute job_str.
7 8 9 |
# File 'lib/rjob/job_processor.rb', line 7 def job_str @job_str end |
Instance Method Details
#run ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/rjob/job_processor.rb', line 26 def run job = Rjob::Job.deserialize(@context, @job_str) @job = job job_args = job.worker_args worker_class = begin job.worker_class rescue NameError @error = { message: "No worker class '#{job.worker_class_name}'" } @force_dont_retry = true return end begin worker_instance = worker_class.new(@context, job) worker_instance.perform(*job_args) @success = true rescue Exception => e @error = { error_class: e.class, message: e. } end end |
#stop_retry? ⇒ Boolean
22 23 24 |
# File 'lib/rjob/job_processor.rb', line 22 def stop_retry? @force_dont_retry end |
#success? ⇒ Boolean
18 19 20 |
# File 'lib/rjob/job_processor.rb', line 18 def success? @success end |