Class: CDC::Parallel::Router

Inherits:
Object
  • Object
show all
Defined in:
lib/cdc/parallel/router.rb,
sig/cdc/parallel/router.rbs

Overview

Routes supported CDC objects to the correct runtime pool.

Instance Method Summary collapse

Constructor Details

#initialize(processor_pool:, transaction_pool:) ⇒ Router

Returns a new instance of Router.

Parameters:



31
32
33
34
# File 'lib/cdc/parallel/router.rb', line 31

def initialize(processor_pool:, transaction_pool:)
  @processor_pool = processor_pool
  @transaction_pool = transaction_pool
end

Instance Method Details

#process(item) ⇒ CDC::Core::ProcessorResult #process(item) ⇒ CDC::Core::ProcessorResult

Process a supported CDC work item.

Overloads:

  • #process(item) ⇒ CDC::Core::ProcessorResult

    Parameters:

    • item (work_item)

    Returns:

    • (CDC::Core::ProcessorResult)
  • #process(item) ⇒ CDC::Core::ProcessorResult

    Parameters:

    • item (Object)

    Returns:

    • (CDC::Core::ProcessorResult)

Parameters:

  • item (CDC::Core::ChangeEvent, CDC::Core::TransactionEnvelope)

Returns:

  • (CDC::Core::ProcessorResult)


43
44
45
46
47
48
49
50
51
52
# File 'lib/cdc/parallel/router.rb', line 43

def process(item)
  case item
  when CDC::Core::ChangeEvent
    @processor_pool.process(item)
  when CDC::Core::TransactionEnvelope
    @transaction_pool.process(item)
  else
    raise UnsupportedWorkItemError, "unsupported CDC work item: #{item.class}"
  end
end