Module: BoyBand::AsyncInstanceMethods
- Defined in:
- lib/boy_band.rb
Class Method Summary collapse
Instance Method Summary collapse
- #schedule(method, *args) ⇒ Object
- #schedule_for(queue, method, *args) ⇒ Object
- #schedule_once(method, *args) ⇒ Object
- #schedule_once_for(queue, method, *args) ⇒ Object
Class Method Details
.included(base) ⇒ Object
437 438 439 440 441 |
# 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 |
Instance Method Details
#schedule(method, *args) ⇒ Object
402 403 404 |
# File 'lib/boy_band.rb', line 402 def schedule(method, *args) schedule_for('default', method, *args) end |
#schedule_for(queue, method, *args) ⇒ Object
406 407 408 409 410 411 412 413 414 415 416 |
# 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) ⇒ Object
418 419 420 |
# 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) ⇒ Object
422 423 424 425 426 427 428 429 430 431 432 433 434 435 |
# 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 |