class Qmin::Resque::BaseJob
Defines a handy base class for Resque
workers for the following pattern:
-
Find an instance of a model by id
-
call a method on the instance
Constants
- ImplementationMissing
- MustRespondToFindMethodError
Public Class Methods
model(model)
click to toggle source
# File lib/qmin/resque/base_job.rb, line 19 def self.model(model) if model.respond_to? :find @@model = model else raise MustRespondToFindMethodError end end
new(id, *args)
click to toggle source
# File lib/qmin/resque/base_job.rb, line 27 def initialize(id, *args) @id = id end
perform(*args)
click to toggle source
delegate perform to job instance
# File lib/qmin/resque/base_job.rb, line 15 def self.perform(*args) new(*args).perform end
queue()
click to toggle source
# File lib/qmin/resque/base_job.rb, line 47 def self.queue # automatic queue naming @queue ||= self.name.to_queue_name end
Public Instance Methods
find_instance(id)
click to toggle source
# File lib/qmin/resque/base_job.rb, line 39 def find_instance(id) model.find(id) end
instance()
click to toggle source
# File lib/qmin/resque/base_job.rb, line 35 def instance @instance ||= find_instance(@id) end
model()
click to toggle source
# File lib/qmin/resque/base_job.rb, line 43 def model @@model end
perform()
click to toggle source
# File lib/qmin/resque/base_job.rb, line 31 def perform raise ImplementationMissing.new("Please implement #perform instance method for job: #{self.class.name}") end