class Q::Methods::DelayedJob::QueueBuild
class NewsletterJob < Struct.new(:text, :emails)
def perform emails.each { |e| NewsletterMailer.deliver_text_to_email(text, e) } end
end
Public Class Methods
call(options={}, &job)
click to toggle source
# File lib/q/methods/delayed_job.rb, line 31 def self.call(options={}, &job) base = options[:base] queue_name = options[:queue_name] queue_klass_name = options[:queue_klass_name] raise NotSetupError unless ActiveRecord::Base.connection.table_exists? 'delayed_jobs' raise Q::DuplicateQueueClassError.new(base, queue_klass_name) if Q.const_defined_on?(base, queue_klass_name) queue_klass = Class.new do def self.perform(*args) @job.call(*args) end def self.job=(job) @job = job end def self.queue=(queue) @queue = queue end end queue_klass.job = job queue_klass.queue = queue_name queue_klass = base.const_set(queue_klass_name, queue_klass) return true end
job=(job)
click to toggle source
# File lib/q/methods/delayed_job.rb, line 44 def self.job=(job) @job = job end
perform(*args)
click to toggle source
# File lib/q/methods/delayed_job.rb, line 40 def self.perform(*args) @job.call(*args) end
queue=(queue)
click to toggle source
# File lib/q/methods/delayed_job.rb, line 48 def self.queue=(queue) @queue = queue end