Class: Krikri::Job
- Inherits:
-
Object
- Object
- Krikri::Job
- 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
-
.perform(activity_id) ⇒ Object
Perform the job.
-
.run(agent, activity_uri = nil) ⇒ Object
Run the job’s task.
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`.
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 |