Sha256: 225f18bb76798ce3cc3d4cde3cc70acae5cff9bcb4a553b6d6319d96ea1b1445

Contents?: true

Size: 746 Bytes

Versions: 3

Compression:

Stored size: 746 Bytes

Contents

require 'sidekiq'

module Rollbar
  module Delay
    class Sidekiq
      OPTIONS = { 'queue' => 'rollbar', 'class' => Rollbar::Delay::Sidekiq }.freeze

      def initialize(*args)
        @options = (opts = args.shift) ? OPTIONS.merge(opts) : OPTIONS
      end

      def call(payload)
        if ::Sidekiq::Client.push(@options.merge('args' => [payload])) == nil
          raise StandardError.new "Unable to push the job to Sidekiq"
        end
      end

      include ::Sidekiq::Worker

      def perform(*args)
        begin
          Rollbar.process_from_async_handler(*args)
        rescue
          # Raise the exception so Sidekiq can track the errored job
          # and retry it
          raise
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rollbar-2.19.2 lib/rollbar/delay/sidekiq.rb
rollbar-2.19.1 lib/rollbar/delay/sidekiq.rb
rollbar-2.19.0 lib/rollbar/delay/sidekiq.rb