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

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ void

This method returns an undefined value.

Add a default queue name when Active Job provides queue_as.

Parameters:

  • base (Class)


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.

Parameters:

  • payload (Hash)

Returns:

  • (Object)

    process return value



22
23
24
# File 'lib/cdc/solid_queue/processor_job.rb', line 22

def perform(payload)
  process(EventSerializer.load_event(payload))
end

#process(event) ⇒ Object

Process a normalized CDC event payload.

Parameters:

  • event (Hash)

Raises:

  • (NotImplementedError)

    when the including job does not override it



30
31
32
# File 'lib/cdc/solid_queue/processor_job.rb', line 30

def process(event)
  raise NotImplementedError, "#{self.class} must implement #process"
end