Sha256: 3ee11d9ce66b73820d2cbc1edaca5080ba1763154fba3314229fbc23154cd7a3

Contents?: true

Size: 596 Bytes

Versions: 18

Compression:

Stored size: 596 Bytes

Contents

module Hermes
  module ProducerErrorHandler
    class SafeHandler
      attr_reader :job_class, :error_notifier, :retryable
      private     :job_class, :error_notifier, :retryable

      def initialize(job_class:, error_notifier:, retryable:)
        @job_class = job_class
        @error_notifier = error_notifier
        @retryable = retryable
      end

      def call(event)
        retryable.perform { yield }
      rescue => error
        error_notifier.capture_exception(error)
        job_class.enqueue(event.class.name, event.as_json, event.origin_headers)
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
hermes-rb-0.10.1 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.10.0 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.9.1 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.9.0 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.8.0 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.7.5 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.7.4 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.7.3 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.7.2 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.7.1 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.7.0 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.6.1 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.6.0 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.5.0 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.4.0 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.3.1 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.3.0 lib/hermes/producer_error_handler/safe_handler.rb
hermes-rb-0.2.0 lib/hermes/producer_error_handler/safe_handler.rb