Module: Karafka::Pro::Routing::Features::RecurringTasks::Topic
- Defined in:
- lib/karafka/pro/routing/features/recurring_tasks/topic.rb
Overview
Topic extensions to be able to check if given topic is a recurring tasks topic Please note, that this applies to both the schedules topics and reports topics
Instance Method Summary collapse
-
#initialize ⇒ Object
This method calls the parent class initializer and then sets up the extra instance variable to nil.
-
#recurring_tasks(active = false) ⇒ Object
-
#recurring_tasks? ⇒ Boolean
Is this an ActiveJob topic.
-
#to_h ⇒ Hash
Topic with all its native configuration options plus active job namespace settings.
Instance Method Details
#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.
18 19 20 21 |
# File 'lib/karafka/pro/routing/features/recurring_tasks/topic.rb', line 18 def initialize(...) super @recurring_tasks = nil end |
#recurring_tasks(active = false) ⇒ Object
24 25 26 |
# File 'lib/karafka/pro/routing/features/recurring_tasks/topic.rb', line 24 def recurring_tasks(active = false) @recurring_tasks ||= Config.new(active: active) end |
#recurring_tasks? ⇒ Boolean
Returns is this an ActiveJob topic.
29 30 31 |
# File 'lib/karafka/pro/routing/features/recurring_tasks/topic.rb', line 29 def recurring_tasks? recurring_tasks.active? end |
#to_h ⇒ Hash
Returns topic with all its native configuration options plus active job namespace settings.
35 36 37 38 39 |
# File 'lib/karafka/pro/routing/features/recurring_tasks/topic.rb', line 35 def to_h super.merge( recurring_tasks: recurring_tasks.to_h ).freeze end |