travis-api/lib/travis/api/app/error_handling.rb
2016-05-30 17:16:27 +02:00

27 lines
572 B
Ruby

require 'travis/api/app'
class Travis::Api::App
class ErrorHandling
def self.setup
return unless Travis.config.sentry.dsn
queue = ::SizedQueue.new(100)
Thread.new do
loop do
begin
Raven.send :send_event, queue.pop
rescue Exception => e
puts e.message, e.backtrace
end
end
end
Raven.configure do |config|
config.async = lambda { |event| queue << event if queue.num_waiting < 100 }
config.dsn = Travis.config.sentry.dsn
end
end
end
end