Sha256: 7c2ed9c449e9b3012c8766ced8a3873b0da8fbeb93bf4e9cc9abb78b69145be2

Contents?: true

Size: 1.25 KB

Versions: 53

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

module Karafka
  module Routing
    module Features
      class DeadLetterQueue < Base
        # DLQ topic extensions
        module Topic
          # After how many retries should be move data to DLQ
          DEFAULT_MAX_RETRIES = 3

          private_constant :DEFAULT_MAX_RETRIES

          # @param max_retries [Integer] after how many retries should we move data to dlq
          # @param topic [String, false] where the messages should be moved if failing or false
          #   if we do not want to move it anywhere and just skip
          # @return [Config] defined config
          def dead_letter_queue(max_retries: DEFAULT_MAX_RETRIES, topic: nil)
            @dead_letter_queue ||= Config.new(
              active: !topic.nil?,
              max_retries: max_retries,
              topic: topic
            )
          end

          # @return [Boolean] is the dlq active or not
          def dead_letter_queue?
            dead_letter_queue.active?
          end

          # @return [Hash] topic with all its native configuration options plus dlq settings
          def to_h
            super.merge(
              dead_letter_queue: dead_letter_queue.to_h
            ).freeze
          end
        end
      end
    end
  end
end

Version data entries

53 entries across 53 versions & 1 rubygems

Version Path
karafka-2.2.14 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.13 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.12 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.11 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.10 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.9 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.8 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.8.beta1 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.7 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.6 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.5 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.4 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.3 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.2 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.1 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.2.0 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.1.13 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.1.12 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.1.11 lib/karafka/routing/features/dead_letter_queue/topic.rb
karafka-2.1.10 lib/karafka/routing/features/dead_letter_queue/topic.rb