Module: CDC::SolidQueue::ProcessorJob
- Defined in:
- lib/cdc/solid_queue/processor_job.rb
Overview
Mixin for Rails ApplicationJob classes that consume CDC event payloads.
Including classes implement #process(event). Active Job calls #perform, this mixin deserializes the payload, then delegates to #process.
Class Method Summary collapse
-
.included(base) ⇒ void
Add a default queue name when Active Job provides queue_as.
Instance Method Summary collapse
-
#perform(payload) ⇒ Object
Active Job entrypoint.
-
#process(event) ⇒ Object
Process a normalized CDC event payload.
Class Method Details
.included(base) ⇒ void
This method returns an undefined value.
Add a default queue name when Active Job provides queue_as.
14 15 16 |
# File 'lib/cdc/solid_queue/processor_job.rb', line 14 def self.included(base) base.queue_as(:cdc) if base.respond_to?(:queue_as) end |
Instance Method Details
#perform(payload) ⇒ Object
Active Job entrypoint.
22 23 24 25 26 27 28 29 |
# File 'lib/cdc/solid_queue/processor_job.rb', line 22 def perform(payload) event = EventSerializer.load_event(payload) if SolidQueue.configuration.downstream_processor return DownstreamProcessor.new(SolidQueue.configuration).process(event) end process(event) end |
#process(event) ⇒ Object
Process a normalized CDC event payload.
35 36 37 |
# File 'lib/cdc/solid_queue/processor_job.rb', line 35 def process(event) raise NotImplementedError, "#{self.class} must implement #process" end |