Sha256: 0a8fb3085cfb6384da69b7f70eaf08b5ac8057996500c31f391c9b7a4e7e9b40

Contents?: true

Size: 1.75 KB

Versions: 47

Compression:

Stored size: 1.75 KB

Contents

# frozen_string_literal: true

# This Karafka component is a Pro component under a commercial license.
# This Karafka component is NOT licensed under LGPL.
#
# All of the commercial components are present in the lib/karafka/pro directory of this
# repository and their usage requires commercial license agreement.
#
# Karafka has also commercial-friendly license, commercial support and commercial components.
#
# By sending a pull request to the pro components, you are agreeing to transfer the copyright of
# your code to Maciej Mensfeld.

module Karafka
  module Pro
    module Routing
      module Features
        class Pausing < Base
          # Expansion allowing for a per topic pause strategy definitions
          module Topic
            # Allows for per-topic pausing strategy setting
            #
            # @param timeout [Integer] how long should we wait upon processing error (milliseconds)
            # @param max_timeout [Integer] what is the max timeout in case of an exponential
            #   backoff (milliseconds)
            # @param with_exponential_backoff [Boolean] should we use exponential backoff
            #
            # @note We do not construct here the nested config like we do with other routing
            #   features, because this feature operates on the OSS layer by injection of values
            #   and a nested config is not needed.
            def pause(timeout: nil, max_timeout: nil, with_exponential_backoff: nil)
              self.pause_timeout = timeout if timeout
              self.pause_max_timeout = max_timeout if max_timeout

              return unless with_exponential_backoff

              self.pause_with_exponential_backoff = with_exponential_backoff
            end
          end
        end
      end
    end
  end
end

Version data entries

47 entries across 47 versions & 1 rubygems

Version Path
karafka-2.4.16 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.15 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.14 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.13 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.12 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.11 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.10 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.9 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.8 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.7 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.6 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.5 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.4 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.3 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.0 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.0.rc1 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.3.4 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.0.beta2 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.4.0.beta1 lib/karafka/pro/routing/features/pausing/topic.rb
karafka-2.3.3 lib/karafka/pro/routing/features/pausing/topic.rb