Sha256: ba1466c42c1e1a6415c8b1b74f8b4e2ca95580bfa85d57d90c6282ca1ea9db76

Contents?: true

Size: 1.16 KB

Versions: 7

Compression:

Stored size: 1.16 KB

Contents

module Krikri
  ##
  # 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.
  #
  # @see Krikri::Activity
  # @see https://github.com/resque/resque/tree/1-x-stable
  class Job
    @queue = nil
    ##
    # Perform the job.
    def self.perform(activity_id)
      activity = Krikri::Activity.find(activity_id)
      activity.run { |agent, activity_uri| run(agent, activity_uri) }
    end

    ##
    # Run the job's task. Receieves a `Krikri::SoftwareAgent` or other object
    # responding to `#run`.
    #
    # @param agent [#run] the agent to run the task
    # @param activity_uri  the URI of the activity responsible for
    #   generating the resources. Set this to (e.g.) prov:wasGeneratedBy
    def self.run(agent, activity_uri = nil)
      agent.run(activity_uri)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
krikri-0.5.0 lib/krikri/job.rb
krikri-0.4.0 lib/krikri/job.rb
krikri-0.3.3 lib/krikri/job.rb
krikri-0.3.2 lib/krikri/job.rb
krikri-0.3.1 lib/krikri/job.rb
krikri-0.2.1 lib/krikri/job.rb
krikri-0.2.0 lib/krikri/job.rb