Module: Karafka::Pro::Routing::Features::Delaying::Topic

Defined in:
lib/karafka/pro/routing/features/delaying/topic.rb

Overview

Topic delaying API extensions

Instance Method Summary collapse

Instance Method Details

#delay_by(*args) ⇒ Object

Just an alias for nice API

Parameters:

  • args (Array)

    Anything ‘#delaying` accepts



39
40
41
# File 'lib/karafka/pro/routing/features/delaying/topic.rb', line 39

def delay_by(*args)
  delaying(*args)
end

#delaying(delay = nil) ⇒ Object

Parameters:

  • delay (Integer, nil) (defaults to: nil)

    minimum age of a message we want to process



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/karafka/pro/routing/features/delaying/topic.rb', line 22

def delaying(delay = nil)
  # Those settings are used for validation
  @delaying ||= begin
    config = Config.new(active: !delay.nil?, delay: delay)

    if config.active?
      factory = ->(*) { Pro::Processing::Filters::Delayer.new(delay) }
      filter(factory)
    end

    config
  end
end

#delaying?Boolean

Returns is a given job delaying.

Returns:

  • (Boolean)

    is a given job delaying



44
45
46
# File 'lib/karafka/pro/routing/features/delaying/topic.rb', line 44

def delaying?
  delaying.active?
end

#to_hHash

Returns topic with all its native configuration options plus delaying.

Returns:

  • (Hash)

    topic with all its native configuration options plus delaying



49
50
51
52
53
# File 'lib/karafka/pro/routing/features/delaying/topic.rb', line 49

def to_h
  super.merge(
    delaying: delaying.to_h
  ).freeze
end