Class ActionFactory
java.lang.Object
org.apache.beam.sdk.io.gcp.spanner.changestreams.action.ActionFactory
- All Implemented Interfaces:
Serializable
Factory class for creating instances that will handle each type of record within a change stream
query. The instances created are all singletons.
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionchildPartitionsRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics) Creates and returns a singleton instance of an action class capable of processChildPartitionsRecords.dataChangeRecordAction(ThroughputEstimator<DataChangeRecord> throughputEstimator) Creates and returns a singleton instance of an action class capable of processingDataChangeRecords.detectNewPartitionsAction(PartitionMetadataDao partitionMetadataDao, PartitionMetadataMapper partitionMetadataMapper, WatermarkCache watermarkCache, ChangeStreamMetrics metrics, Duration resumeDuration) Creates and returns a single instance of an action class capable of detecting and scheduling new partitions to be queried.heartbeatRecordAction(ChangeStreamMetrics metrics, boolean cancelQueryOnHeartbeat) Creates and returns a singleton instance of an action class capable of processingHeartbeatRecords.partitionEndRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics) Creates and returns a singleton instance of an action class capable of processPartitionEndRecords.partitionEventRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics) Creates and returns a singleton instance of an action class capable of processPartitionEventRecords.partitionStartRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics) Creates and returns a singleton instance of an action class capable of processPartitionStartRecords.queryChangeStreamAction(ChangeStreamDao changeStreamDao, PartitionMetadataDao partitionMetadataDao, ChangeStreamRecordMapper changeStreamRecordMapper, PartitionMetadataMapper partitionMetadataMapper, DataChangeRecordAction dataChangeRecordAction, HeartbeatRecordAction heartbeatRecordAction, ChildPartitionsRecordAction childPartitionsRecordAction, PartitionStartRecordAction partitionStartRecordAction, PartitionEndRecordAction partitionEndRecordAction, PartitionEventRecordAction partitionEventRecordAction, ChangeStreamMetrics metrics, boolean isMutableChangeStream, Duration realTimeCheckpointInterval) Creates and returns a single instance of an action class capable of performing a change stream query for a given partition.
-
Constructor Details
-
ActionFactory
public ActionFactory()
-
-
Method Details
-
dataChangeRecordAction
public DataChangeRecordAction dataChangeRecordAction(ThroughputEstimator<DataChangeRecord> throughputEstimator) Creates and returns a singleton instance of an action class capable of processingDataChangeRecords.This method is thread safe.
- Returns:
- singleton instance of the
DataChangeRecordAction
-
heartbeatRecordAction
public HeartbeatRecordAction heartbeatRecordAction(ChangeStreamMetrics metrics, boolean cancelQueryOnHeartbeat) Creates and returns a singleton instance of an action class capable of processingHeartbeatRecords. This method is thread safe.- Parameters:
metrics- metrics gathering class- Returns:
- singleton instance of the
HeartbeatRecordAction
-
childPartitionsRecordAction
public ChildPartitionsRecordAction childPartitionsRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics) Creates and returns a singleton instance of an action class capable of processChildPartitionsRecords. This method is thread safe.- Parameters:
partitionMetadataDao- DAO class to access the Connector's metadata tablesmetrics- metrics gathering class- Returns:
- singleton instance of the
ChildPartitionsRecordAction
-
partitionStartRecordAction
public PartitionStartRecordAction partitionStartRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics) Creates and returns a singleton instance of an action class capable of processPartitionStartRecords. This method is thread safe.- Parameters:
partitionMetadataDao- DAO class to access the Connector's metadata tablesmetrics- metrics gathering class- Returns:
- singleton instance of the
PartitionStartRecordAction
-
partitionEndRecordAction
public PartitionEndRecordAction partitionEndRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics) Creates and returns a singleton instance of an action class capable of processPartitionEndRecords. This method is thread safe.- Parameters:
partitionMetadataDao- DAO class to access the Connector's metadata tablesmetrics- metrics gathering class- Returns:
- singleton instance of the
PartitionEndRecordAction
-
partitionEventRecordAction
public PartitionEventRecordAction partitionEventRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics) Creates and returns a singleton instance of an action class capable of processPartitionEventRecords. This method is thread safe.- Parameters:
partitionMetadataDao- DAO class to access the Connector's metadata tablesmetrics- metrics gathering class- Returns:
- singleton instance of the
PartitionEventRecordAction
-
queryChangeStreamAction
public QueryChangeStreamAction queryChangeStreamAction(ChangeStreamDao changeStreamDao, PartitionMetadataDao partitionMetadataDao, ChangeStreamRecordMapper changeStreamRecordMapper, PartitionMetadataMapper partitionMetadataMapper, DataChangeRecordAction dataChangeRecordAction, HeartbeatRecordAction heartbeatRecordAction, ChildPartitionsRecordAction childPartitionsRecordAction, PartitionStartRecordAction partitionStartRecordAction, PartitionEndRecordAction partitionEndRecordAction, PartitionEventRecordAction partitionEventRecordAction, ChangeStreamMetrics metrics, boolean isMutableChangeStream, Duration realTimeCheckpointInterval) Creates and returns a single instance of an action class capable of performing a change stream query for a given partition. It uses theDataChangeRecordAction,HeartbeatRecordAction,ChildPartitionsRecordAction,PartitionStartRecordAction,PartitionEndRecordActionandPartitionEventRecordActionto dispatch the necessary processing depending on the type of record received.- Parameters:
changeStreamDao- DAO class to perform a change stream querypartitionMetadataDao- DAO class to access the Connector's metadata tableschangeStreamRecordMapper- mapper class to transform change stream records into the Connector's domain modelspartitionMetadataMapper- mapper class to transform partition metadata rows into the Connector's domain modelsdataChangeRecordAction- action class to processDataChangeRecordsheartbeatRecordAction- action class to processHeartbeatRecordschildPartitionsRecordAction- action class to processChildPartitionsRecordspartitionStartRecordAction- action class to processPartitionStartRecordspartitionEndRecordAction- action class to processPartitionEndRecordspartitionEventRecordAction- action class to processPartitionEventRecordsmetrics- metrics gathering classrealTimeCheckpointInterval- the duration added to current time for the end timestamp- Returns:
- single instance of the
QueryChangeStreamAction
-
detectNewPartitionsAction
public DetectNewPartitionsAction detectNewPartitionsAction(PartitionMetadataDao partitionMetadataDao, PartitionMetadataMapper partitionMetadataMapper, WatermarkCache watermarkCache, ChangeStreamMetrics metrics, Duration resumeDuration) Creates and returns a single instance of an action class capable of detecting and scheduling new partitions to be queried.- Parameters:
partitionMetadataDao- DAO class to access the Connector's metadata tablespartitionMetadataMapper- mapper class to transform partition metadata table rows into the Connector's domain modelsmetrics- metrics gathering classresumeDuration- specifies the periodic schedule to re-execute the action- Returns:
- single instance of the
DetectNewPartitionsAction
-