Sha256: 24f91b581fd28fa70fbd0007653bc2eb4b9a316ea4b84c00b10c336b1f4b160b

Contents?: true

Size: 772 Bytes

Versions: 2

Compression:

Stored size: 772 Bytes

Contents

module EventBus
  module Broker
    class Rabbit < Base
      def connection
        @@connection ||= session
      end

      def consume(event_name, &block)
        Queue.subscribe(channel, event_name, &block)
      end

      def produce(events)
        events.each do |event|
          Topic.produce(channel, event)
        end
      end

      def self.close_connection
        @@connection.close
      end

      private

      def channel
        @@channel ||= connection.create_channel
        @@channel = connection.create_channel if @@channel.closed?
        @@channel
      end

      def session
        Bunny.new(url).tap do |session|
          session.start
        end
      end

      def url
        EventBus::Config::FULL_URL
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
event_bus_rb-2.1.0 lib/event_bus/broker/rabbit.rb
event_bus_rb-2.0.3 lib/event_bus/broker/rabbit.rb