Class: JobRunner

Inherits:
Object
  • Object
show all
Defined in:
backend/app/lib/job_runner.rb

Direct Known Subclasses

BatchImportRunner, FindAndReplaceRunner, PrintToPDFRunner, ReportRunner

Defined Under Namespace

Classes: BackgroundJobError, JobRunnerNotFound

Class Method Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (JobRunner) initialize(job)

Returns a new instance of JobRunner



28
29
30
31
32
33
# File 'backend/app/lib/job_runner.rb', line 28

def initialize(job)
  @job = job
  RequestContext.open(:repo_id => @job.repo_id) do
    @json = Job.to_jsonmodel(job)
  end
end

Class Method Details

+ (Object) for(job)

Raises:



7
8
9
10
11
12
13
14
# File 'backend/app/lib/job_runner.rb', line 7

def self.for(job)
  @runners.each do |runner|
    runner = runner.instance_for(job)
    return runner if runner
  end

  raise JobRunnerNotFound.new("No suitable runner found for #{job.job_type}")
end

+ (Object) inherited(subclass)



23
24
25
# File 'backend/app/lib/job_runner.rb', line 23

def self.inherited(subclass)
  JobRunner.register_runner(subclass)
end

+ (Object) register_runner(subclass)



17
18
19
20
# File 'backend/app/lib/job_runner.rb', line 17

def self.register_runner(subclass)
  @runners ||= []
  @runners.unshift(subclass)
end

Instance Method Details

- (Object) canceled(canceled)



36
37
38
39
# File 'backend/app/lib/job_runner.rb', line 36

def canceled(canceled)
  @job_canceled = canceled
  self
end

- (Object) run



42
# File 'backend/app/lib/job_runner.rb', line 42

def run; end