Class UnboundedSolaceWriter
java.lang.Object
org.apache.beam.sdk.transforms.DoFn<KV<Integer,Solace.Record>,Solace.PublishResult>
org.apache.beam.sdk.io.solace.write.UnboundedSolaceWriter
- All Implemented Interfaces:
Serializable
,HasDisplayData
- Direct Known Subclasses:
UnboundedBatchedSolaceWriter
,UnboundedStreamingSolaceWriter
@Internal
public abstract class UnboundedSolaceWriter
extends DoFn<KV<Integer,Solace.Record>,Solace.PublishResult>
This DoFn encapsulates common code used both for the
UnboundedBatchedSolaceWriter
and
UnboundedStreamingSolaceWriter
.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.beam.sdk.transforms.DoFn
DoFn.AlwaysFetched, DoFn.BoundedPerElement, DoFn.BundleFinalizer, DoFn.Element, DoFn.FieldAccess, DoFn.FinishBundle, DoFn.FinishBundleContext, DoFn.GetInitialRestriction, DoFn.GetInitialWatermarkEstimatorState, DoFn.GetRestrictionCoder, DoFn.GetSize, DoFn.GetWatermarkEstimatorStateCoder, DoFn.Key, DoFn.MultiOutputReceiver, DoFn.NewTracker, DoFn.NewWatermarkEstimator, DoFn.OnTimer, DoFn.OnTimerContext, DoFn.OnTimerFamily, DoFn.OnWindowExpiration, DoFn.OnWindowExpirationContext, DoFn.OutputReceiver<T>, DoFn.ProcessContext, DoFn.ProcessContinuation, DoFn.ProcessElement, DoFn.RequiresStableInput, DoFn.RequiresTimeSortedInput, DoFn.Restriction, DoFn.Setup, DoFn.SideInput, DoFn.SplitRestriction, DoFn.StartBundle, DoFn.StartBundleContext, DoFn.StateId, DoFn.Teardown, DoFn.TimerFamily, DoFn.TimerId, DoFn.Timestamp, DoFn.TruncateRestriction, DoFn.UnboundedPerElement, DoFn.WatermarkEstimatorState, DoFn.WindowedContext
-
Constructor Summary
ConstructorsConstructorDescriptionUnboundedSolaceWriter
(SerializableFunction<Solace.Record, Destination> destinationFn, SessionServiceFactory sessionServiceFactory, DeliveryMode deliveryMode, SolaceIO.SubmissionMode submissionMode, int producersMapCardinality, boolean publishLatencyMetrics) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addToCurrentBundle
(Solace.Record record) createMessagesArray
(Iterable<Solace.Record> records, boolean useCorrelationKeyLatency) createSingleMessage
(Solace.Record record, boolean useCorrelationKeyLatency) int
void
publishResults
(org.apache.beam.sdk.io.solace.write.UnboundedSolaceWriter.BeamContextWrapper context) void
setCurrentBundleTimestamp
(Instant bundleTimestamp) boolean
void
void
teardown()
void
Methods inherited from class org.apache.beam.sdk.transforms.DoFn
getAllowedTimestampSkew, getInputTypeDescriptor, getOutputTypeDescriptor, populateDisplayData, prepareForProcessing
-
Constructor Details
-
UnboundedSolaceWriter
public UnboundedSolaceWriter(SerializableFunction<Solace.Record, Destination> destinationFn, SessionServiceFactory sessionServiceFactory, DeliveryMode deliveryMode, SolaceIO.SubmissionMode submissionMode, int producersMapCardinality, boolean publishLatencyMetrics)
-
-
Method Details
-
teardown
-
updateProducerIndex
public void updateProducerIndex() -
startBundle
-
solaceSessionServiceWithProducer
-
publishResults
public void publishResults(org.apache.beam.sdk.io.solace.write.UnboundedSolaceWriter.BeamContextWrapper context) -
createSingleMessage
-
createMessagesArray
public JCSMPSendMultipleEntry[] createMessagesArray(Iterable<Solace.Record> records, boolean useCorrelationKeyLatency) -
getProducersMapCardinality
public int getProducersMapCardinality() -
getPublishLatencyMetric
-
getFailedLatencyMetric
-
shouldPublishLatencyMetrics
public boolean shouldPublishLatencyMetrics() -
getDestinationFn
-
getDeliveryMode
-
getSubmissionMode
-
addToCurrentBundle
-
getCurrentBundle
-
getCurrentBundleTimestamp
-
setCurrentBundleTimestamp
-