class GlassOctopus::Consumer

@api private

Attributes

connection[R]
logger[R]
processor[R]

Public Class Methods

new(connection, processor, logger) click to toggle source
# File lib/glass_octopus/consumer.rb, line 8
def initialize(connection, processor,  logger)
  @connection = connection
  @processor  = processor
  @logger     = logger
end

Public Instance Methods

process_message(message) click to toggle source

Unit of work. Builds a context for a message and runs it through the middleware stack. It catches and logs all application level exceptions.

# File lib/glass_octopus/consumer.rb, line 26
def process_message(message)
  processor.call(Context.new(message, logger))
rescue => ex
  logger.error("#{ex.class} - #{ex.message}:")
  logger.error(ex.backtrace.join("\n")) if ex.backtrace
end
run() click to toggle source
# File lib/glass_octopus/consumer.rb, line 14
def run
  connection.fetch_message do |message|
    process_message(message)
  end
end
shutdown() click to toggle source
# File lib/glass_octopus/consumer.rb, line 20
def shutdown
  connection.close
end