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