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
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/karafka/pro/routing/features/dead_letter_queue/topic.rb', line 28 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.
17 18 19 20 |
# File 'lib/karafka/pro/routing/features/dead_letter_queue/topic.rb', line 17 def initialize(...) super @dead_letter_queue = nil end |