@Internal public abstract class BaseTwoInputStreamOperatorWithStateRetention extends org.apache.flink.streaming.api.operators.AbstractStreamOperator<org.apache.flink.table.data.RowData> implements org.apache.flink.streaming.api.operators.TwoInputStreamOperator<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>, org.apache.flink.streaming.api.operators.Triggerable<Object,org.apache.flink.runtime.state.VoidNamespace>
TwoInputStreamOperator that allows its subclasses to clean
up their state based on a TTL. This TTL should be specified in the provided
minRetentionTime and maxRetentionTime.
For each known key, this operator registers a timer (in processing time) to fire after the TTL expires. When the timer fires, the subclass can decide which state to cleanup and what further action to take.
This class takes care of maintaining at most one timer per key.
IMPORTANT NOTE TO USERS: When extending this class, do not use processing time timers in your business logic. The reason is that:
1) if your timers collide with clean up timers and you delete them, then state clean-up will not be performed, and
2) (this one is the reason why this class does not allow to override the onProcessingTime()) the onProcessingTime with your logic would be also executed on each clean up timer.
| 限定符和类型 | 字段和说明 |
|---|---|
protected boolean |
stateCleaningEnabled |
| 限定符 | 构造器和说明 |
|---|---|
protected |
BaseTwoInputStreamOperatorWithStateRetention(long minRetentionTime,
long maxRetentionTime) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
cleanupLastTimer() |
abstract void |
cleanupState(long time)
The method to be called when a cleanup timer fires.
|
void |
onProcessingTime(org.apache.flink.streaming.api.operators.InternalTimer<Object,org.apache.flink.runtime.state.VoidNamespace> timer)
The users of this class are not allowed to use processing time timers.
|
void |
open() |
protected void |
registerProcessingCleanupTimer()
If the user has specified a
minRetentionTime and maxRetentionTime, this
method registers a cleanup timer for currentProcessingTime + minRetentionTime. |
close, dispose, getChainingStrategy, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getTimeServiceManager, getUserCodeClassloader, initializeState, initializeState, notifyCheckpointAborted, notifyCheckpointComplete, numEventTimeTimers, numProcessingTimeTimers, prepareSnapshotPreBarrier, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processWatermark, processWatermark1, processWatermark2, reportOrForwardLatencyMarker, setChainingStrategy, setCurrentKey, setKeyContextElement1, setKeyContextElement2, setProcessingTimeService, setup, snapshotState, snapshotStateclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitprocessElement1, processElement2, processLatencyMarker1, processLatencyMarker2, processWatermark1, processWatermark2close, dispose, getMetricGroup, getOperatorID, initializeState, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotStateprotected BaseTwoInputStreamOperatorWithStateRetention(long minRetentionTime,
long maxRetentionTime)
public void open()
throws Exception
open 在接口中 org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>open 在类中 org.apache.flink.streaming.api.operators.AbstractStreamOperator<org.apache.flink.table.data.RowData>Exceptionprotected void registerProcessingCleanupTimer()
throws IOException
minRetentionTime and maxRetentionTime, this
method registers a cleanup timer for currentProcessingTime + minRetentionTime.
When this timer fires, the cleanupState(long) method is called.
IOExceptionprotected void cleanupLastTimer()
throws IOException
IOExceptionpublic final void onProcessingTime(org.apache.flink.streaming.api.operators.InternalTimer<Object,org.apache.flink.runtime.state.VoidNamespace> timer) throws Exception
public abstract void cleanupState(long time)
time - The timestamp of the fired timer.Copyright © 2014–2020 The Apache Software Foundation. All rights reserved.