Class: DispatchRider::Subscriber

Inherits:
Object
  • Object
show all
Defined in:
lib/dispatch-rider/subscriber.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSubscriber



8
9
10
11
# File 'lib/dispatch-rider/subscriber.rb', line 8

def initialize
  @queue_service_registrar = DispatchRider::Registrars::QueueService.new
  @dispatcher = DispatchRider::Dispatcher.new
end

Instance Attribute Details

#demultiplexerObject (readonly)

Returns the value of attribute demultiplexer.



6
7
8
# File 'lib/dispatch-rider/subscriber.rb', line 6

def demultiplexer
  @demultiplexer
end

#dispatcherObject (readonly)

Returns the value of attribute dispatcher.



6
7
8
# File 'lib/dispatch-rider/subscriber.rb', line 6

def dispatcher
  @dispatcher
end

#queue_service_registrarObject (readonly)

Returns the value of attribute queue_service_registrar.



6
7
8
# File 'lib/dispatch-rider/subscriber.rb', line 6

def queue_service_registrar
  @queue_service_registrar
end

Instance Method Details

#processObject



34
35
36
37
38
39
40
# File 'lib/dispatch-rider/subscriber.rb', line 34

def process
  register_quit_trap
  register_term_trap
  register_int_trap

  demultiplexer.start
end

#register_handler(name) ⇒ Object



18
19
20
21
# File 'lib/dispatch-rider/subscriber.rb', line 18

def register_handler(name)
  dispatcher.register(name)
  self
end

#register_handlers(*names) ⇒ Object



23
24
25
26
# File 'lib/dispatch-rider/subscriber.rb', line 23

def register_handlers(*names)
  names.each {|name| register_handler(name)}
  self
end

#register_queue(name, options = {}) ⇒ Object



13
14
15
16
# File 'lib/dispatch-rider/subscriber.rb', line 13

def register_queue(name, options = {})
  queue_service_registrar.register(name, options)
  self
end

#setup_demultiplexer(queue_name, error_handler = DispatchRider::DefaultErrorHandler) ⇒ Object



28
29
30
31
32
# File 'lib/dispatch-rider/subscriber.rb', line 28

def setup_demultiplexer(queue_name, error_handler = DispatchRider::DefaultErrorHandler)
  queue = queue_service_registrar.fetch(queue_name)
  @demultiplexer ||= DispatchRider::Demultiplexer.new(queue, dispatcher, error_handler)
  self
end