Package io.debezium.pipeline.signal
Class SignalProcessor<P extends Partition,O extends OffsetContext>
java.lang.Object
io.debezium.pipeline.signal.SignalProcessor<P,O>
This class permits to process signals coming from the different channels.
- Author:
- Mario Fiore Vitale
-
Field Summary
Modifier and TypeFieldDescriptionprivate final CommonConnectorConfig
private final DocumentReader
private final List<SignalChannelReader>
private static final org.slf4j.Logger
private final Semaphore
static final int
static final Duration
Waiting period for the polling loop to finish.private final Map<String,
SignalAction<P>> private final List<SignalChannelReader>
private final ScheduledExecutorService
-
Constructor Summary
ConstructorDescriptionSignalProcessor
(Class<? extends org.apache.kafka.connect.source.SourceConnector> connector, CommonConnectorConfig config, Map<String, SignalAction<P>> signalActions, List<SignalChannelReader> signalChannelReaders, DocumentReader documentReader, Offsets<P, O> previousOffsets) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
executeWithSemaphore
(Runnable operation) private List<SignalChannelReader>
<T extends SignalChannelReader>
TgetSignalChannel
(Class<T> channel) The method permits to get specified SignalChannelReader instance from the available SPI implementationsprivate Predicate<SignalChannelReader>
private static <T extends SignalChannelReader>
Predicate<SignalChannelReader>void
process()
private void
processSignal
(SignalRecord signalRecord) void
void
registerSignalAction
(String id, SignalAction<P> signal) void
setContext
(O offset) void
start()
void
stop()
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
SHUTDOWN_WAIT_TIMEOUT
Waiting period for the polling loop to finish. Will be applied twice, once gracefully, once forcefully. -
SEMAPHORE_WAIT_TIME
public static final int SEMAPHORE_WAIT_TIME- See Also:
-
signalActions
-
connectorConfig
-
enabledChannelReaders
-
signalChannelReaders
-
signalProcessorExecutor
-
documentReader
-
previousOffsets
-
semaphore
-
-
Constructor Details
-
SignalProcessor
public SignalProcessor(Class<? extends org.apache.kafka.connect.source.SourceConnector> connector, CommonConnectorConfig config, Map<String, SignalAction<P>> signalActions, List<SignalChannelReader> signalChannelReaders, DocumentReader documentReader, Offsets<P, O> previousOffsets)
-
-
Method Details
-
isEnabled
-
getEnabledChannelReaders
-
setContext
-
start
public void start() -
stop
- Throws:
InterruptedException
-
registerSignalAction
-
process
public void process() -
processSourceSignal
public void processSourceSignal() -
executeWithSemaphore
-
processSignal
-
getSignalChannel
The method permits to get specified SignalChannelReader instance from the available SPI implementations- Parameters:
channel
- the class of the channel to get- Returns:
- the specified instance from the available SPI implementations
-
isSignal
private static <T extends SignalChannelReader> Predicate<SignalChannelReader> isSignal(Class<T> channelClass)
-