class DaemonObjects::ConsumerBase

Attributes

message_handler[RW]
app_directory[R]
environment[R]
logger[R]

Public Class Methods

handle_messages_with(&block) click to toggle source
# File lib/daemon_objects/consumer_base.rb, line 33
def self.handle_messages_with(&block)
  raise StandardError.new("Provided block must take at least one argument - 'payload'") if block.arity < 1
  define_method(:handle_message_impl, &block) 
end
new(opts) click to toggle source
# File lib/daemon_objects/consumer_base.rb, line 11
def initialize(opts)
  @logger        = opts[:logger]
  @app_directory = opts[:app_directory]
  @environment   = opts[:environment]
end

Public Instance Methods

handle_message(payload) click to toggle source
# File lib/daemon_objects/consumer_base.rb, line 21
def handle_message(payload)
  logger.info("Handling message #{payload}")
  response = handle_message_impl(payload)
  logger.info("Completed handling message")
  response
rescue StandardError => e
  logger.error("#{e.class}:  #{e.message}")
  logger.error(e.backtrace.join("\n"))
  Airbrake.notify(e) if defined?(Airbrake)
  e
end
run() click to toggle source
# File lib/daemon_objects/consumer_base.rb, line 17
def run
  logger.info("Starting consumer")
end