Sha256: ddfd97d90fabc258fd1c5778480afa15e3238200c0b36517d4ca3e0733589a90

Contents?: true

Size: 995 Bytes

Versions: 10

Compression:

Stored size: 995 Bytes

Contents

if defined?(ActiveJob)
  module Sentry
    parent_job =
      if defined?(::ApplicationJob) && ::ApplicationJob.ancestors.include?(::ActiveJob::Base)
        ::ApplicationJob
      else
        ::ActiveJob::Base
      end

    class SendEventJob < parent_job
      # the event argument is usually large and creates noise
      self.log_arguments = false if respond_to?(:log_arguments=)

      # this will prevent infinite loop when there's an issue deserializing SentryJob
      if respond_to?(:discard_on)
        discard_on ActiveJob::DeserializationError
      else
        # mimic what discard_on does for Rails 5.0
        rescue_from ActiveJob::DeserializationError do |exception|
          logger.error "Discarded #{self.class} due to a #{exception}. The original exception was #{exception.cause.inspect}."
        end
      end

      def perform(event, hint = {})
        Sentry.send_event(event, hint)
      end
    end
  end
else
  module Sentry
    class SendEventJob; end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
sentry-rails-5.20.1 app/jobs/sentry/send_event_job.rb
sentry-rails-5.20.0 app/jobs/sentry/send_event_job.rb
sentry-rails-5.19.0 app/jobs/sentry/send_event_job.rb
sentry-rails-5.18.2 app/jobs/sentry/send_event_job.rb
sentry-rails-5.18.1 app/jobs/sentry/send_event_job.rb
sentry-rails-5.18.0 app/jobs/sentry/send_event_job.rb
sentry-rails-5.17.3 app/jobs/sentry/send_event_job.rb
sentry-rails-5.17.2 app/jobs/sentry/send_event_job.rb
sentry-rails-5.17.1 app/jobs/sentry/send_event_job.rb
sentry-rails-5.17.0 app/jobs/sentry/send_event_job.rb