Module: Karafka::Routing::Features::DeadLetterQueue::Topic

Defined in:
lib/karafka/routing/features/dead_letter_queue/topic.rb

Overview

DLQ topic extensions

Instance Method Summary collapse

Instance Method Details

#dead_letter_queue(max_retries: DEFAULT_MAX_RETRIES, topic: nil) ⇒ Config

Returns defined config.

Parameters:

  • max_retries (Integer) (defaults to: DEFAULT_MAX_RETRIES)

    after how many retries should we move data to dlq

  • topic (String, false) (defaults to: nil)

    where the messages should be moved if failing or false if we do not want to move it anywhere and just skip

Returns:



18
19
20
21
22
23
24
# File 'lib/karafka/routing/features/dead_letter_queue/topic.rb', line 18

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

#dead_letter_queue?Boolean

Returns is the dlq active or not.

Returns:

  • (Boolean)

    is the dlq active or not



27
28
29
# File 'lib/karafka/routing/features/dead_letter_queue/topic.rb', line 27

def dead_letter_queue?
  dead_letter_queue.active?
end

#to_hHash

Returns topic with all its native configuration options plus dlq settings.

Returns:

  • (Hash)

    topic with all its native configuration options plus dlq settings



32
33
34
35
36
# File 'lib/karafka/routing/features/dead_letter_queue/topic.rb', line 32

def to_h
  super.merge(
    dead_letter_queue: dead_letter_queue.to_h
  ).freeze
end