lib/harmoniser/subscriber.rb in harmoniser-0.5.0 vs lib/harmoniser/subscriber.rb in harmoniser-0.6.0

- old
+ new

@@ -5,12 +5,10 @@ module Harmoniser module Subscriber class MissingConsumerDefinition < StandardError; end include Channelable include Includable - MUTEX = Mutex.new - private_constant :MUTEX module ClassMethods def harmoniser_subscriber(queue_name:, consumer_tag: nil, no_ack: true, exclusive: false, arguments: {}) @harmoniser_consumer_definition = Definition::Consumer.new( queue_name: queue_name, @@ -20,24 +18,25 @@ arguments: arguments ) end def harmoniser_subscriber_start - MUTEX.synchronize do + const_get(:HARMONISER_SUBSCRIBER_MUTEX).synchronize do @harmoniser_consumer ||= create_consumer end end private def create_consumer raise_missing_consumer_definition unless @harmoniser_consumer_definition + channel = Subscriber.create_channel consumer = Bunny::Consumer.new( - Subscriber.harmoniser_channel, + channel, @harmoniser_consumer_definition.queue_name, - @harmoniser_consumer_definition.consumer_tag || Subscriber.harmoniser_channel.generate_consumer_tag, + @harmoniser_consumer_definition.consumer_tag || channel.generate_consumer_tag, @harmoniser_consumer_definition.no_ack, @harmoniser_consumer_definition.exclusive, @harmoniser_consumer_definition.arguments ) handle_cancellation(consumer) @@ -75,9 +74,10 @@ end end class << self def included(base) + base.const_set(:HARMONISER_SUBSCRIBER_MUTEX, Mutex.new) base.extend(ClassMethods) harmoniser_register_included(base) end end end