module BoyBand::AsyncInstanceMethods
Public Class Methods
included(base)
click to toggle source
# File lib/boy_band.rb, line 437 def self.included(base) base.define_singleton_method(:included) do |klass| klass.cattr_accessor :last_scheduled_stamp end end
Public Instance Methods
schedule(method, *args)
click to toggle source
# File lib/boy_band.rb, line 402 def schedule(method, *args) schedule_for('default', method, *args) end
schedule_for(queue, method, *args)
click to toggle source
# File lib/boy_band.rb, line 406 def schedule_for(queue, method, *args) return nil unless method id = self.id settings = { 'id' => id, 'method' => method, 'scheduled' => self.class.scheduled_stamp, 'arguments' => args } Worker.schedule_for(queue, self.class, :perform_action, settings) end
schedule_once(method, *args)
click to toggle source
# File lib/boy_band.rb, line 418 def schedule_once(method, *args) schedule_once_for('default', method, *args) end
schedule_once_for(queue, method, *args)
click to toggle source
# File lib/boy_band.rb, line 422 def schedule_once_for(queue, method, *args) return nil unless method && id already_scheduled = Worker.scheduled_for?(queue, self.class, :perform_action, { 'id' => id, 'method' => method, 'scheduled' => self.class.scheduled_stamp, 'arguments' => args }) if !already_scheduled schedule_for(queue, method, *args) else false end end