Class AsyncPurgingTrigger<T,W extends Window>
- java.lang.Object
-
- org.apache.flink.runtime.asyncprocessing.operators.windowing.triggers.AsyncTrigger<T,W>
-
- org.apache.flink.runtime.asyncprocessing.operators.windowing.triggers.AsyncPurgingTrigger<T,W>
-
- Type Parameters:
T- The type of elements on which this trigger can operate.W- The type ofWindowson which this trigger can operate.
- All Implemented Interfaces:
Serializable
@Experimental public class AsyncPurgingTrigger<T,W extends Window> extends AsyncTrigger<T,W>
A trigger that can turn anyAsyncTriggerinto a purgingTrigger. This is for async window operatorWhen the nested trigger fires, this will return a
FIRE_AND_PURGETriggerResult.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.flink.runtime.asyncprocessing.operators.windowing.triggers.AsyncTrigger
AsyncTrigger.OnMergeContext, AsyncTrigger.TriggerContext
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanMerge()Returns true if this trigger supports merging of trigger state and can therefore be used with aMergingWindowAssigner.org.apache.flink.api.common.state.v2.StateFuture<Void>clear(W window, AsyncTrigger.TriggerContext ctx)Clears any state that the trigger might still hold for the given window.AsyncTrigger<T,W>getNestedTrigger()static <T,W extends Window>
AsyncPurgingTrigger<T,W>of(AsyncTrigger<T,W> nestedTrigger)Creates a new purging trigger from the givenTrigger.org.apache.flink.api.common.state.v2.StateFuture<TriggerResult>onElement(T element, long timestamp, W window, AsyncTrigger.TriggerContext ctx)Called for every element that gets added to a pane.org.apache.flink.api.common.state.v2.StateFuture<TriggerResult>onEventTime(long time, W window, AsyncTrigger.TriggerContext ctx)Called when an event-time timer that was set using the trigger context fires.voidonMerge(W window, AsyncTrigger.OnMergeContext ctx)Called when several windows have been merged into one window by theWindowAssigner.org.apache.flink.api.common.state.v2.StateFuture<TriggerResult>onProcessingTime(long time, W window, AsyncTrigger.TriggerContext ctx)Called when a processing-time timer that was set using the trigger context fires.StringtoString()-
Methods inherited from class org.apache.flink.runtime.asyncprocessing.operators.windowing.triggers.AsyncTrigger
isEndOfStreamTrigger
-
-
-
-
Method Detail
-
onElement
public org.apache.flink.api.common.state.v2.StateFuture<TriggerResult> onElement(T element, long timestamp, W window, AsyncTrigger.TriggerContext ctx) throws Exception
Description copied from class:AsyncTriggerCalled for every element that gets added to a pane. The result of this will determine whether the pane is evaluated to emit results.- Specified by:
onElementin classAsyncTrigger<T,W extends Window>- Parameters:
element- The element that arrived.timestamp- The timestamp of the element that arrived.window- The window to which the element is being added.ctx- A context object that can be used to register timer callbacks.- Throws:
Exception
-
onEventTime
public org.apache.flink.api.common.state.v2.StateFuture<TriggerResult> onEventTime(long time, W window, AsyncTrigger.TriggerContext ctx) throws Exception
Description copied from class:AsyncTriggerCalled when an event-time timer that was set using the trigger context fires.- Specified by:
onEventTimein classAsyncTrigger<T,W extends Window>- Parameters:
time- The timestamp at which the timer fired.window- The window for which the timer fired.ctx- A context object that can be used to register timer callbacks.- Throws:
Exception
-
onProcessingTime
public org.apache.flink.api.common.state.v2.StateFuture<TriggerResult> onProcessingTime(long time, W window, AsyncTrigger.TriggerContext ctx) throws Exception
Description copied from class:AsyncTriggerCalled when a processing-time timer that was set using the trigger context fires.- Specified by:
onProcessingTimein classAsyncTrigger<T,W extends Window>- Parameters:
time- The timestamp at which the timer fired.window- The window for which the timer fired.ctx- A context object that can be used to register timer callbacks.- Throws:
Exception
-
clear
public org.apache.flink.api.common.state.v2.StateFuture<Void> clear(W window, AsyncTrigger.TriggerContext ctx) throws Exception
Description copied from class:AsyncTriggerClears any state that the trigger might still hold for the given window. This is called when a window is purged. Timers set usingAsyncTrigger.TriggerContext.registerEventTimeTimer(long)andAsyncTrigger.TriggerContext.registerProcessingTimeTimer(long)should be deleted here as well as state acquired usingAsyncTrigger.TriggerContext.getPartitionedState(StateDescriptor).
-
canMerge
public boolean canMerge()
Description copied from class:AsyncTriggerReturns true if this trigger supports merging of trigger state and can therefore be used with aMergingWindowAssigner.If this returns
trueyou must properly implementAsyncTrigger.onMerge(Window, OnMergeContext)- Overrides:
canMergein classAsyncTrigger<T,W extends Window>
-
onMerge
public void onMerge(W window, AsyncTrigger.OnMergeContext ctx) throws Exception
Description copied from class:AsyncTriggerCalled when several windows have been merged into one window by theWindowAssigner.
-
of
public static <T,W extends Window> AsyncPurgingTrigger<T,W> of(AsyncTrigger<T,W> nestedTrigger)
Creates a new purging trigger from the givenTrigger.- Parameters:
nestedTrigger- The trigger that is wrapped by this purging trigger
-
getNestedTrigger
@VisibleForTesting public AsyncTrigger<T,W> getNestedTrigger()
-
-