Class: Krikri::Job

Inherits:
Object
  • Object
show all
Defined in:
lib/krikri/job.rb

Overview

Generic Job class that gets extended by specific types of Jobs; Harvest, Enrichment, etc.

A Job is instantiated by the queue system and #perform is invoked to run the job. The Job looks up an Activity that was created when the job was enqueued and calls Activity#run, passing Job#run as a block to perform the actual work. This is necessary because the Activity is designed not to care about what kind of job it’s running.

Class Method Summary collapse

Class Method Details

.perform(activity_id) ⇒ Object

Perform the job.



18
19
20
21
# File 'lib/krikri/job.rb', line 18

def self.perform(activity_id)
  activity = Krikri::Activity.find(activity_id)
  activity.run { |agent, activity_uri| run(agent, activity_uri) }
end

.run(agent, activity_uri = nil) ⇒ Object

Run the job’s task. Receieves a ‘Krikri::SoftwareAgent` or other object responding to `#run`.

Parameters:

  • agent (#run)

    the agent to run the task

  • activity_uri (defaults to: nil)

    the URI of the activity responsible for generating the resources. Set this to (e.g.) prov:wasGeneratedBy



30
31
32
33
# File 'lib/krikri/job.rb', line 30

def self.run(agent, activity_uri = nil)
  return agent.run unless activity_uri && agent.method(:run).arity != 0
  agent.run(activity_uri)
end