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
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/karafka/pro/routing/features/dead_letter_queue/topic.rb', line 45 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.
34 35 36 37 |
# File 'lib/karafka/pro/routing/features/dead_letter_queue/topic.rb', line 34 def initialize(...) super @dead_letter_queue = nil end |