Class: Citrus::Components::PushScheduler

Inherits:
Component
  • Object
show all
Defined in:
lib/citrus/components/push_scheduler.rb

Overview

PushScheduler

Instance Method Summary collapse

Constructor Details

#initialize(app, args = {}) ⇒ PushScheduler

Initialize the component

Parameters:

  • app (Object)
  • args (Hash) (defaults to: {})


23
24
25
26
# File 'lib/citrus/components/push_scheduler.rb', line 23

def initialize app, args={}
  @app = app
  @scheduler = get_scheduler app, args
end

Instance Method Details

#after_start(&block) ⇒ Object

Component lifecycle callback



29
30
31
32
33
34
35
# File 'lib/citrus/components/push_scheduler.rb', line 29

def after_start &block
  if @scheduler.respond_to? :start
    @scheduler.start &block
  else
    EM.next_tick { block.call } if block_given?
  end
end

#schedule(req_id, route, msg, recvs, args, &block) ⇒ Object

Schedule how the message to send

Parameters:

  • req_id (Integer)
  • route (String)
  • msg (Hash)
  • recvs (Array)
  • args (Hash)


53
54
55
56
57
58
# File 'lib/citrus/components/push_scheduler.rb', line 53

def schedule req_id, route, msg, recvs, args, &block
  if @scheculer.respond_to? :schedule
    @scheduler.schedule req_id, route, msg, recvs, args, &block
  else
  end
end

#stop(&block) ⇒ Object

Component lifecycle callback



38
39
40
41
42
43
44
# File 'lib/citrus/components/push_scheduler.rb', line 38

def stop &block
  if @scheduler.respond_to? :stop
    @scheduler.stop &block
  else
    EM.next_tick { block.call } if block_given?
  end
end