class RabbitHutch::Worker

Public Class Methods

new(channel, config, consumers) click to toggle source
# File lib/worker.rb, line 11
def initialize(channel, config, consumers)
  @channel = channel
  @channel.on_error(&method(:handle_channel_exception))
  @consumer = Consumer.new(consumers)
  @exchange_name = config.application['exchangename']
  @queue_name = config.application['queuename']
end

Public Instance Methods

handle_channel_exception(channel, channel_close) click to toggle source
# File lib/worker.rb, line 27
def handle_channel_exception(channel, channel_close)
  puts "Oops... a channel-level exception: code = #{channel_close.reply_code}, message = #{channel_close.reply_text}"
end
start() click to toggle source

begin listening for all topics in publish.#

# File lib/worker.rb, line 20
def start
  @exchange = @channel.topic(@exchange_name, :durable => true, :auto_delete => false, :internal => true)
  @queue = @channel.queue(@queue_name, :durable => true, :auto_delete => false)
  @queue.bind(@exchange, :routing_key => 'publish.#')
  @queue.subscribe(&@consumer.method(:handle_message))
end