Sha256: d0db57053f818aeb4ed09bbada802e207096b87e07b1c36437d91a0fd650c714
Contents?: true
Size: 1.1 KB
Versions: 3
Compression:
Stored size: 1.1 KB
Contents
# This class takes care of the subscribing side of the messaging system. module DispatchRider class Subscriber attr_reader :queue_service_registrar, :dispatcher, :demultiplexer def initialize @queue_service_registrar = DispatchRider::Registrars::QueueService.new @dispatcher = DispatchRider::Dispatcher.new end def register_queue(name, options = {}) queue_service_registrar.register(name, options) self end def register_handler(name) dispatcher.register(name) self end def register_handlers(*names) names.each {|name| register_handler(name)} self end def on_dispatch_error(&block) dispatcher.on_error &block end def setup_demultiplexer(queue_name) queue = queue_service_registrar.fetch(queue_name) @demultiplexer ||= DispatchRider::Demultiplexer.new(queue, dispatcher) self end def process interuption_count = 0 Signal.trap("INT") do interuption_count += 1 interuption_count < 2 ? demultiplexer.stop : exit(0) end demultiplexer.start end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dispatch-rider-0.0.7 | lib/dispatch-rider/subscriber.rb |
dispatch-rider-0.0.5 | lib/dispatch-rider/subscriber.rb |
dispatch-rider-0.0.4 | lib/dispatch-rider/subscriber.rb |