module RocketJob::Batch::StateMachine
State machine for sliced jobs
Public Instance Methods
cleanup!()
click to toggle source
Drop the input and output collections
# File lib/rocket_job/batch/state_machine.rb, line 49 def cleanup! input_categories.each { |category| input(category).drop } output_categories.each { |category| output(category).drop } end
pausable?()
click to toggle source
A batch job can only be processed:
-
Whilst Queued (before processing).
-
During processing.
I.e. Not during before_batch and after_batch.
# File lib/rocket_job/batch/state_machine.rb, line 59 def pausable? queued? || paused? || (running? && (sub_state == :processing)) end
Private Instance Methods
rocket_job_clear_sub_state()
click to toggle source
# File lib/rocket_job/batch/state_machine.rb, line 74 def rocket_job_clear_sub_state self.sub_state = nil end
rocket_job_processing?()
click to toggle source
Is this job still being processed
# File lib/rocket_job/batch/state_machine.rb, line 66 def rocket_job_processing? running? && (sub_state == :processing) end
rocket_job_requeue_failed_slices()
click to toggle source
Also retry failed slices when the job itself is re-tried
# File lib/rocket_job/batch/state_machine.rb, line 96 def rocket_job_requeue_failed_slices input.requeue_failed end
rocket_job_requeue_sub_state_after()
click to toggle source
# File lib/rocket_job/batch/state_machine.rb, line 85 def rocket_job_requeue_sub_state_after self.sub_state = :processing self.worker_name = nil end
rocket_job_requeue_sub_state_before()
click to toggle source
Called after a job in sub_state: :before is requeued
# File lib/rocket_job/batch/state_machine.rb, line 79 def rocket_job_requeue_sub_state_before self.sub_state = nil self.started_at = nil self.worker_name = nil end
rocket_job_requeue_sub_state_processing(worker_name)
click to toggle source
# File lib/rocket_job/batch/state_machine.rb, line 90 def rocket_job_requeue_sub_state_processing(worker_name) self.worker_name = nil input.requeue_running(worker_name) end
rocket_job_sub_state_before()
click to toggle source
# File lib/rocket_job/batch/state_machine.rb, line 70 def rocket_job_sub_state_before self.sub_state = :before unless sub_state end