module Maitredee::ActiveJob
Public Class Methods
create_publisher_job(subclass)
click to toggle source
@api private
# File lib/maitredee/active_job.rb, line 13 def self.create_publisher_job(subclass) subclass.const_set("PublisherJob", Class.new(BasePublisherJob)) subclass::PublisherJob.service_class = subclass end
extended(mod)
click to toggle source
# File lib/maitredee/active_job.rb, line 6 def self.extended(mod) mod.descendants.each do |klass| create_publisher_job(klass) end end
Public Instance Methods
call_later(*args)
click to toggle source
Uses ActiveJob
to async the publishing @example To configure the specific async job open PublisherJob
class RecipePublisher < Maitredee::Publisher class PublisherJob queue_as :low end end RecipePublisher.call_later(Recipe.find(1))
# File lib/maitredee/active_job.rb, line 28 def call_later(*args) self::PublisherJob.perform_later(*args) end
call_later_at(at, *args)
click to toggle source
Like `call_later`, but performs at a given time @example Configuring a time to perform the job
RecipePublisher.call_later_at(Date.tomorrow.noon, Recipe.find(1))
# File lib/maitredee/active_job.rb, line 36 def call_later_at(at, *args) self::PublisherJob.set(wait_until: at).perform_later(*args) end
Private Instance Methods
create_publisher_job(subclass)
click to toggle source
# File lib/maitredee/active_job.rb, line 47 def create_publisher_job(subclass) Maitredee::ActiveJob.create_publisher_job(subclass) end
inherited(subclass)
click to toggle source
Calls superclass method
# File lib/maitredee/active_job.rb, line 42 def inherited(subclass) create_publisher_job(subclass) super end