diff --git a/lib/raven/integrations/rails.rb b/lib/raven/integrations/rails.rb index d0704773f..02c86432e 100644 --- a/lib/raven/integrations/rails.rb +++ b/lib/raven/integrations/rails.rb @@ -14,6 +14,13 @@ class Rails < ::Rails::Railtie end end + initializer 'raven.active_job' do + ActiveSupport.on_load :active_job do + require 'raven/integrations/rails/active_job' + include Raven::Rails::ActiveJob + end + end + config.after_initialize do Raven.configure do |config| config.logger ||= ::Rails.logger diff --git a/lib/raven/integrations/rails/active_job.rb b/lib/raven/integrations/rails/active_job.rb new file mode 100644 index 000000000..9a0db214a --- /dev/null +++ b/lib/raven/integrations/rails/active_job.rb @@ -0,0 +1,18 @@ +module Raven + class Rails + module ActiveJob + def self.included(base) + base.class_eval do + rescue_from(Exception) do |exception| + # Do not capture exceptions when using Sidekiq so we don't capture + # The same exception twice. + unless self.class.queue_adapter.to_s == 'ActiveJob::QueueAdapters::SidekiqAdapter' + Raven.capture_exception(exception, :extra => { :active_job => self.class.name }) + raise exception + end + end + end + end + end + end +end