lib/karafka/routing/features/dead_letter_queue/topic.rb in karafka-2.3.4 vs lib/karafka/routing/features/dead_letter_queue/topic.rb in karafka-2.4.0.beta1

- old
+ new

@@ -16,22 +16,30 @@ # if we do not want to move it anywhere and just skip # @param independent [Boolean] needs to be true in order for each marking as consumed # in a retry flow to reset the errors counter # @param transactional [Boolean] if applicable, should transaction be used to move # given message to the dead-letter topic and mark it as consumed. + # @param dispatch_method [Symbol] `:produce_async` or `:produce_sync`. Describes + # whether dispatch on dlq should be sync or async (async by default) + # @param marking_method [Symbol] `:mark_as_consumed` or `:mark_as_consumed!`. Describes + # whether marking on DLQ should be async or sync (async by default) # @return [Config] defined config def dead_letter_queue( max_retries: DEFAULT_MAX_RETRIES, topic: nil, independent: false, - transactional: true + transactional: true, + dispatch_method: :produce_async, + marking_method: :mark_as_consumed ) @dead_letter_queue ||= Config.new( active: !topic.nil?, max_retries: max_retries, topic: topic, independent: independent, - transactional: transactional + transactional: transactional, + dispatch_method: dispatch_method, + marking_method: marking_method ) end # @return [Boolean] is the dlq active or not def dead_letter_queue?