class DispatchRider::Subscriber
Attributes
demultiplexer[R]
dispatcher[R]
queue_service_registrar[R]
Public Class Methods
new()
click to toggle source
# File lib/dispatch-rider/subscriber.rb, line 6 def initialize @queue_service_registrar = DispatchRider::Registrars::QueueService.new @dispatcher = DispatchRider::Dispatcher.new end
Public Instance Methods
process()
click to toggle source
# File lib/dispatch-rider/subscriber.rb, line 32 def process register_quit_trap register_term_trap register_int_trap demultiplexer.start end
register_handler(name)
click to toggle source
# File lib/dispatch-rider/subscriber.rb, line 16 def register_handler(name) dispatcher.register(name) self end
register_handlers(*names)
click to toggle source
# File lib/dispatch-rider/subscriber.rb, line 21 def register_handlers(*names) names.each {|name| register_handler(name)} self end
register_queue(name, options = {})
click to toggle source
# File lib/dispatch-rider/subscriber.rb, line 11 def register_queue(name, options = {}) queue_service_registrar.register(name, options) self end
setup_demultiplexer(queue_name, error_handler = DispatchRider::DefaultErrorHandler)
click to toggle source
# File lib/dispatch-rider/subscriber.rb, line 26 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
Private Instance Methods
logger()
click to toggle source
# File lib/dispatch-rider/subscriber.rb, line 72 def logger DispatchRider.config.logger end
register_int_trap()
click to toggle source
# File lib/dispatch-rider/subscriber.rb, line 58 def register_int_trap @already_interrupted = false Signal.trap("INT") do if @already_interrupted logger.info "Received SIGINT second time, aborting" exit(0) else logger.info "Received SIGINT first time, stopping demultiplexer" demultiplexer.stop(reason: "Got SIGINT") end @already_interrupted = true end end
register_quit_trap()
click to toggle source
# File lib/dispatch-rider/subscriber.rb, line 42 def register_quit_trap Signal.trap("QUIT") do # signal number: 3 logger.info "Received SIGQUIT, stopping demultiplexer" demultiplexer.stop(reason: "Got SIGQUIT") end end
register_term_trap()
click to toggle source
# File lib/dispatch-rider/subscriber.rb, line 50 def register_term_trap Signal.trap("TERM") do # signal number: 15 logger.info "Received SIGTERM, stopping demultiplexer" demultiplexer.stop(reason: "Got SIGTERM") end end