class RocketJob::Jobs::OnDemandBatchJob

Public Instance Methods

add_output_category(**args) click to toggle source

Add a new output category and collect output for it.

# File lib/rocket_job/jobs/on_demand_batch_job.rb, line 107
def add_output_category(**args)
  self.output_categories << RocketJob::Category::Output.new(**args)
end
slice_size=(slice_size) click to toggle source

Shortcut for setting the slice_size

# File lib/rocket_job/jobs/on_demand_batch_job.rb, line 102
def slice_size=(slice_size)
  input_category.slice_size = slice_size
end

Private Instance Methods

load_perform_code() click to toggle source
# File lib/rocket_job/jobs/on_demand_batch_job.rb, line 113
def load_perform_code
  instance_eval("def perform(row)\n#{code}\nend", __FILE__, __LINE__)
end
rocket_job_cron_singleton_check() click to toggle source

Allow multiple instances of this job to run with the same cron schedule

# File lib/rocket_job/jobs/on_demand_batch_job.rb, line 150
def rocket_job_cron_singleton_check
end
run_after_code() click to toggle source
# File lib/rocket_job/jobs/on_demand_batch_job.rb, line 121
def run_after_code
  instance_eval(after_code) if after_code
end
run_before_code() click to toggle source
# File lib/rocket_job/jobs/on_demand_batch_job.rb, line 117
def run_before_code
  instance_eval(before_code) if before_code
end
validate_after_code() click to toggle source
# File lib/rocket_job/jobs/on_demand_batch_job.rb, line 137
def validate_after_code
  return if after_code.nil?

  validate_field(:after_code) { instance_eval("def __after_code\n#{after_code}\nend", __FILE__, __LINE__) }
end
validate_before_code() click to toggle source
# File lib/rocket_job/jobs/on_demand_batch_job.rb, line 131
def validate_before_code
  return if before_code.nil?

  validate_field(:before_code) { instance_eval("def __before_code\n#{before_code}\nend", __FILE__, __LINE__) }
end
validate_code() click to toggle source
# File lib/rocket_job/jobs/on_demand_batch_job.rb, line 125
def validate_code
  return if code.nil?

  validate_field(:code) { load_perform_code }
end
validate_field(field) { || ... } click to toggle source
# File lib/rocket_job/jobs/on_demand_batch_job.rb, line 143
def validate_field(field)
  yield
rescue Exception => e
  errors.add(field, "Failed to load :#{field}, #{e.inspect}")
end