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) 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) 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
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) 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 class- 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
-