class RabbitFeed::ProducerConnection

Constants

EXCHANGE_OPTIONS
PUBLISH_OPTIONS

Attributes

exchange[R]

Public Class Methods

handle_returned_message(return_info, _content) click to toggle source
# File lib/rabbit_feed/producer_connection.rb, line 14
def self.handle_returned_message(return_info, _content)
  RabbitFeed.log.error { { event: :returned_message, return_info: return_info } }
  RabbitFeed.exception_notify(ReturnedMessageError.new(return_info))
end
new() click to toggle source
Calls superclass method RabbitFeed::Connection::new
# File lib/rabbit_feed/producer_connection.rb, line 19
def initialize
  super
  @exchange = channel.exchange RabbitFeed.configuration.exchange, exchange_options
  RabbitFeed.log.info { { event: :exchange_declared, exchange: RabbitFeed.configuration.exchange, options: exchange_options } }
  exchange.on_return do |return_info, _properties, content|
    RabbitFeed::ProducerConnection.handle_returned_message return_info, content
  end
end

Public Instance Methods

publish(message, options) click to toggle source
# File lib/rabbit_feed/producer_connection.rb, line 28
def publish(message, options)
  synchronized do
    bunny_options = (options.merge PUBLISH_OPTIONS)
    RabbitFeed.log.debug { { event: :publish, options: options, exchange: RabbitFeed.configuration.exchange } }
    exchange.publish message, bunny_options
  end
end

Private Instance Methods

exchange_options() click to toggle source
# File lib/rabbit_feed/producer_connection.rb, line 40
def exchange_options
  {
    auto_delete: RabbitFeed.configuration.auto_delete_exchange
  }.merge EXCHANGE_OPTIONS
end