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