class Subservient::Task

Attributes

job[R]

Public Class Methods

new(job) click to toggle source
# File lib/subservient/task.rb, line 6
def initialize job
  @job = job
  @input = @job.input
end

Private Class Methods

max_retries(n) click to toggle source
# File lib/subservient/task.rb, line 31
def self.max_retries n
  @@max_retries = n
end
retry_on(err) click to toggle source
# File lib/subservient/task.rb, line 26
def self.retry_on err
  @@retry_on << err
end

Public Instance Methods

execute_job() click to toggle source
# File lib/subservient/task.rb, line 11
def execute_job
  self.send(@job.task_method)
rescue NoMethodError
  raise MissingTaskError
rescue *@@retry_on => e
  raise RetryJob.new @@max_retries
rescue RetryJob, *@@retry_on => e
  e.max_retries ||= @@max_retries
  raise e
rescue StandardError => e
  raise BuryJob
end