class MultiWorker::Adapters::Que
Attributes
worker_klass[R]
Public Class Methods
configure(base, opts={})
click to toggle source
# File lib/multi_worker/adapters/que.rb, line 4 def self.configure(base, opts={}) base.class_eval do @queue = opts[:queue] def self.perform(*args) self.new.perform(*args) end def self.perform_async(*args) @job_klass.queue(*args) end def perform_async(*args) self.class.perform_async(*args) end worker_klass = self @job_klass = Class.new(::Que::Job) @job_klass.class_eval do @worker_klass = worker_klass class << self attr_reader :worker_klass end def run(*args) self.class.worker_klass.new.perform(*args) end end const_set :Job, @job_klass end end
perform(*args)
click to toggle source
# File lib/multi_worker/adapters/que.rb, line 8 def self.perform(*args) self.new.perform(*args) end
perform_async(*args)
click to toggle source
# File lib/multi_worker/adapters/que.rb, line 12 def self.perform_async(*args) @job_klass.queue(*args) end
rake_task()
click to toggle source
# File lib/multi_worker/adapters/que.rb, line 39 def self.rake_task require 'rake' require 'que/rake_tasks' ::Rake::Task['que:work'] end
Public Instance Methods
perform_async(*args)
click to toggle source
# File lib/multi_worker/adapters/que.rb, line 16 def perform_async(*args) self.class.perform_async(*args) end
run(*args)
click to toggle source
# File lib/multi_worker/adapters/que.rb, line 30 def run(*args) self.class.worker_klass.new.perform(*args) end