Skip to content

Commit

Permalink
Add exception handler
Browse files Browse the repository at this point in the history
  • Loading branch information
Takashi Kokubun committed Sep 30, 2016
1 parent fe32086 commit c04b386
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 2 deletions.
25 changes: 25 additions & 0 deletions lib/barbeque/exception_handler.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
require 'barbeque/configuration'

module Barbeque
module ExceptionHandler
class << self
def handle_exception(e)
case Barbeque.config.exception_handler
when 'rails_logger'
rails_logger(e)
when 'raven'
Raven.capture_exception(e)
else
Rails.logger.fatal("Unexpected exception handler: #{Barbeque.config.exception_handler}")
rails_logger(e)
end
end

private

def rails_logger(e)
Rails.logger.error("#{e.inspect}\n#{e.backtrace.join("\n")}")
end
end
end
end
4 changes: 2 additions & 2 deletions lib/barbeque/worker.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
require 'barbeque/exception_handler'
require 'barbeque/message_handler'
require 'barbeque/message_queue'
require 'serverengine'
Expand Down Expand Up @@ -53,8 +54,7 @@ def execute_job
handler = MessageHandler.const_get(message.type, false)
handler.new(message: message, job_queue: message_queue.job_queue).run
rescue => e
# Use Raven.capture_exception
Rails.logger.fatal("[ERROR] #{e.inspect}\n#{e.backtrace.join("\n")}")
Barbeque::ExceptionHandler.handle_exception(e)
end

private
Expand Down
1 change: 1 addition & 0 deletions spec/dummy/config/barbeque.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
default: &default
exception_handler: rails_logger
runner: Docker

development:
Expand Down

0 comments on commit c04b386

Please sign in to comment.