Module: Karafka::Pro::Routing::Features::ConsumerGroups::ScheduledMessages::Topic

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

Overview

Topic extensions to be able to check if given topic is a scheduled messages topic Please note, that this applies to both the schedules topic and logs topic

Instance Method Summary collapse

Instance Method Details

#initializeObject

This method sets up the extra instance variable to nil before calling the parent class initializer. The explicit initialization to nil is included as an optimization for Ruby’s object shapes system, which improves memory layout and access performance.



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

def initialize(...)
  @scheduled_messages = nil
  super
end

#scheduled_messages(active = false) ⇒ Object

Parameters:

  • active (Boolean) (defaults to: false)

    should this topic be considered related to scheduled messages



50
51
52
# File 'lib/karafka/pro/routing/features/consumer_groups/scheduled_messages/topic.rb', line 50

def scheduled_messages(active = false)
  @scheduled_messages ||= Config.new(active: active)
end

#scheduled_messages?Boolean

Returns is this an ActiveJob topic.

Returns:

  • (Boolean)

    is this an ActiveJob topic



55
56
57
# File 'lib/karafka/pro/routing/features/consumer_groups/scheduled_messages/topic.rb', line 55

def scheduled_messages?
  scheduled_messages.active?
end

#to_hHash

messages namespace settings

Returns:

  • (Hash)

    topic with all its native configuration options plus scheduled



61
62
63
64
65
# File 'lib/karafka/pro/routing/features/consumer_groups/scheduled_messages/topic.rb', line 61

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