Module: Karafka::Pro::Processing::PeriodicJob::Consumer
- Defined in:
- lib/karafka/pro/processing/periodic_job/consumer.rb
Overview
Consumer extra methods useful only when periodic jobs are in use
Class Method Summary collapse
-
.included(consumer_singleton_class) ⇒ Object
Defines an empty
#tick
method if not present.
Instance Method Summary collapse
-
#on_before_schedule_tick ⇒ Object
Runs the on-schedule tick periodic operations This method is an alias but is part of the naming convention used for other flows, this is why we do not reference the
handle_before_schedule_tick
directly. -
#on_tick ⇒ Object
Used by the executor to trigger consumer tick.
Class Method Details
.included(consumer_singleton_class) ⇒ Object
Defines an empty #tick
method if not present
We define it that way due to our injection strategy flow.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/karafka/pro/processing/periodic_job/consumer.rb', line 28 def included(consumer_singleton_class) # Do not define empty tick method on consumer if it already exists # We only define it when it does not exist to have empty periodic ticking # # We need to check both cases (public and private) since user is not expected to # have this method public return if consumer_singleton_class.instance_methods.include?(:tick) return if consumer_singleton_class.private_instance_methods.include?(:tick) # Create empty ticking method consumer_singleton_class.class_eval do def tick; end end end |
Instance Method Details
#on_before_schedule_tick ⇒ Object
Runs the on-schedule tick periodic operations This method is an alias but is part of the naming convention used for other flows, this is why we do not reference the handle_before_schedule_tick
directly
47 48 49 |
# File 'lib/karafka/pro/processing/periodic_job/consumer.rb', line 47 def on_before_schedule_tick handle_before_schedule_tick end |
#on_tick ⇒ Object
Used by the executor to trigger consumer tick
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/karafka/pro/processing/periodic_job/consumer.rb', line 53 def on_tick handle_tick rescue StandardError => e Karafka.monitor.instrument( 'error.occurred', error: e, caller: self, type: 'consumer.tick.error' ) end |