OutT - output type of the DoFnOppublic class PortableBundleManager<OutT> extends java.lang.Object implements BundleManager<OutT>
DoFnOp that handles lifecycle of a bundle. It also serves as a
proxy for the DoFnOp to process watermark and decides to 1. Hold watermark if there is at
least one bundle in progress. 2. Propagates the watermark to downstream DAG, if all the previous
bundles have completed.
This class is not thread safe and the current implementation relies on the assumption that messages are dispatched to BundleManager in a single threaded mode.
BundleManager.BundleProgressListener<OutT>| Constructor and Description |
|---|
PortableBundleManager(BundleManager.BundleProgressListener<OutT> bundleProgressListener,
long maxBundleSize,
long maxBundleTimeMs,
org.apache.samza.operators.Scheduler<KeyedTimerData<java.lang.Void>> bundleTimerScheduler,
java.lang.String bundleCheckTimerId) |
| Modifier and Type | Method and Description |
|---|---|
void |
inconsistentStateCheck() |
void |
processTimer(KeyedTimerData<java.lang.Void> keyedTimerData,
OpEmitter<OutT> emitter)
Signals the BundleManager that a timer is up.
|
void |
processWatermark(org.joda.time.Instant watermark,
OpEmitter<OutT> emitter)
Signals a watermark event arrived.
|
void |
signalFailure(java.lang.Throwable t)
Signal the bundle manager to handle failure.
|
void |
tryFinishBundle(OpEmitter<OutT> emitter)
Tries to close the bundle, and reset the bundle to an empty state.
|
void |
tryStartBundle()
Starts a new bundle if not already started, then adds an element to the existing bundle.
|
public PortableBundleManager(BundleManager.BundleProgressListener<OutT> bundleProgressListener, long maxBundleSize, long maxBundleTimeMs, org.apache.samza.operators.Scheduler<KeyedTimerData<java.lang.Void>> bundleTimerScheduler, java.lang.String bundleCheckTimerId)
public void tryStartBundle()
BundleManagertryStartBundle in interface BundleManager<OutT>public void processWatermark(org.joda.time.Instant watermark,
OpEmitter<OutT> emitter)
BundleManagerprocessWatermark in interface BundleManager<OutT>public void processTimer(KeyedTimerData<java.lang.Void> keyedTimerData, OpEmitter<OutT> emitter)
BundleManagerprocessTimer in interface BundleManager<OutT>public void signalFailure(java.lang.Throwable t)
signalFailure in interface BundleManager<OutT>t - failure causepublic void tryFinishBundle(OpEmitter<OutT> emitter)
BundleManagertryFinishBundle in interface BundleManager<OutT>public void inconsistentStateCheck()