Module: Karafka::Pro::Routing::Features::DeadLetterQueue::Topic
- Defined in:
- lib/karafka/pro/routing/features/dead_letter_queue/topic.rb
Overview
Expansions to the topic API in DLQ
Instance Method Summary collapse
-
#dead_letter_queue(strategy: nil, **args) ⇒ Object
(same as in OSS) should be applied.
-
#initialize ⇒ Object
This method calls the parent class initializer and then sets up the extra instance variable to nil.
Instance Method Details
#dead_letter_queue(strategy: nil, **args) ⇒ Object
(same as in OSS) should be applied
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/karafka/pro/routing/features/dead_letter_queue/topic.rb', line 53 def dead_letter_queue(strategy: nil, **args) return @dead_letter_queue if @dead_letter_queue super(**args).tap do |config| # If explicit strategy is not provided, use the default approach from OSS config.strategy = strategy || lambda do |_errors_tracker, attempt| (attempt > config.max_retries) ? :dispatch : :retry end end end |
#initialize ⇒ Object
This method calls the parent class initializer and then sets up the extra instance variable to nil. The explicit initialization to nil is included as an optimization for Ruby’s object shapes system, which improves memory layout and access performance.
42 43 44 45 |
# File 'lib/karafka/pro/routing/features/dead_letter_queue/topic.rb', line 42 def initialize(...) super @dead_letter_queue = nil end |