Sha256: 345799c5f09761c10b8648e7027f4d94b2b342d34cabfeb01151850a39c319fe
Contents?: true
Size: 1.19 KB
Versions: 5
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true module Msgr class Binding include Logging attr_reader( :channel, :connection, :dispatcher, :queue, :route, :subscription, ) def initialize(connection, route, dispatcher) @connection = connection @channel = connection.channel(prefetch: route.prefetch) @route = route @dispatcher = dispatcher @queue = @channel.queue(route.name) route.keys.each do |key| log(:debug) { "Bind #{key} to #{queue.name}." } queue.bind @channel.exchange, routing_key: key end subscribe end def release subscription.cancel end def delete release queue.delete end def purge(release: true) self.release if release queue.purge subscribe if release end private def subscribe @subscription = queue.subscribe(manual_ack: true) do |*args| dispatcher.call Message.new(channel, *args, route) rescue StandardError => e log(:error) do "Rescued error from subscribe: #{e.class.name}: " \ "#{e}\n#{e.backtrace.join("\n")}" end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
msgr-1.7.0 | lib/msgr/binding.rb |
msgr-1.6.1 | lib/msgr/binding.rb |
msgr-1.6.0 | lib/msgr/binding.rb |
msgr-1.5.0 | lib/msgr/binding.rb |
msgr-1.4.0 | lib/msgr/binding.rb |