module BatchProcessor::Batch::JobController

Public Instance Methods

job_callbacks(*events) click to toggle source
# File lib/batch_processor/batch/job_controller.rb, line 12
def job_callbacks(*events)
  define_callbacks_for(*events, :job).each do |job_event|
    set_callback job_event, :around, ->(_, block) { surveil(job_event, batch_id: batch_id) { block.call } }
  end
end
job_canceled() click to toggle source
# File lib/batch_processor/batch/job_controller.rb, line 81
def job_canceled
  raise BatchProcessor::NotAbortedError unless aborted?

  run_callbacks(__method__) do
    details.pipelined do
      details.increment(:canceled_jobs_count)
      details.decrement(:pending_jobs_count)
    end
  end
end
job_enqueued() click to toggle source
# File lib/batch_processor/batch/job_controller.rb, line 27
def job_enqueued
  raise BatchProcessor::AlreadyEnqueuedError if enqueued?
  raise BatchProcessor::NotProcessingError unless processing?

  run_callbacks(__method__) { details.increment(:enqueued_jobs_count) }
end
job_failure() click to toggle source
# File lib/batch_processor/batch/job_controller.rb, line 69
def job_failure
  raise BatchProcessor::NotStartedError unless started?
  raise BatchProcessor::AlreadyFinishedError if finished?

  run_callbacks(__method__) do
    details.pipelined do
      details.increment(:failed_jobs_count)
      details.decrement(:running_jobs_count)
    end
  end
end
job_retried() click to toggle source
# File lib/batch_processor/batch/job_controller.rb, line 45
def job_retried
  raise BatchProcessor::NotProcessingError unless processing?

  run_callbacks(__method__) do
    details.pipelined do
      details.increment(:total_retries_count)
      details.increment(:pending_jobs_count)
      details.decrement(:failed_jobs_count)
    end
  end
end
job_running() click to toggle source
# File lib/batch_processor/batch/job_controller.rb, line 34
def job_running
  raise BatchProcessor::NotProcessingError unless processing?

  run_callbacks(__method__) do
    details.pipelined do
      details.increment(:running_jobs_count)
      details.decrement(:pending_jobs_count)
    end
  end
end
job_success() click to toggle source
# File lib/batch_processor/batch/job_controller.rb, line 57
def job_success
  raise BatchProcessor::NotStartedError unless started?
  raise BatchProcessor::AlreadyFinishedError if finished?

  run_callbacks(__method__) do
    details.pipelined do
      details.increment(:successful_jobs_count)
      details.decrement(:running_jobs_count)
    end
  end
end