Class KeyedProcessFunction<K,I,O>
- java.lang.Object
-
- org.apache.flink.api.common.functions.AbstractRichFunction
-
- org.apache.flink.streaming.api.functions.KeyedProcessFunction<K,I,O>
-
- Type Parameters:
K- Type of the key.I- Type of the input elements.O- Type of the output elements.
- All Implemented Interfaces:
Serializable,org.apache.flink.api.common.functions.Function,org.apache.flink.api.common.functions.RichFunction
- Direct Known Subclasses:
DeclaringAsyncKeyedProcessFunction
@PublicEvolving public abstract class KeyedProcessFunction<K,I,O> extends org.apache.flink.api.common.functions.AbstractRichFunctionA keyed function that processes elements of a stream.For every element in the input stream
#processElement(Object, Context, Collector)is invoked. This can produce zero or more elements as output. Implementations can also query the time and set timers through the providedKeyedProcessFunction.Context. For firing timers#onTimer(long, OnTimerContext, Collector)will be invoked. This can again produce zero or more elements as output and register further timers.NOTE: Access to keyed state and timers (which are also scoped to a key) is only available if the
KeyedProcessFunctionis applied on aKeyedStream.NOTE: A
KeyedProcessFunctionis always aRichFunction. Therefore, access to theRuntimeContextis always available and setup and teardown methods can be implemented. SeeRichFunction.open(OpenContext)andRichFunction.close().- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classKeyedProcessFunction.ContextInformation available in an invocation of#processElement(Object, Context, Collector)or#onTimer(long, OnTimerContext, Collector).classKeyedProcessFunction.OnTimerContextInformation available in an invocation of#onTimer(long, OnTimerContext, Collector).
-
Constructor Summary
Constructors Constructor Description KeyedProcessFunction()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidonTimer(long timestamp, KeyedProcessFunction.OnTimerContext ctx, org.apache.flink.util.Collector<O> out)Called when a timer set usingTimerServicefires.abstract voidprocessElement(I value, KeyedProcessFunction.Context ctx, org.apache.flink.util.Collector<O> out)Process one element from the input stream.
-
-
-
Method Detail
-
processElement
public abstract void processElement(I value, KeyedProcessFunction.Context ctx, org.apache.flink.util.Collector<O> out) throws Exception
Process one element from the input stream.This function can output zero or more elements using the
Collectorparameter and also update internal state or set timers using theKeyedProcessFunction.Contextparameter.- Parameters:
value- The input value.ctx- AKeyedProcessFunction.Contextthat allows querying the timestamp of the element and getting aTimerServicefor registering timers and querying the time. The context is only valid during the invocation of this method, do not store it.out- The collector for returning result values.- Throws:
Exception- This method may throw exceptions. Throwing an exception will cause the operation to fail and may trigger recovery.
-
onTimer
public void onTimer(long timestamp, KeyedProcessFunction.OnTimerContext ctx, org.apache.flink.util.Collector<O> out) throws ExceptionCalled when a timer set usingTimerServicefires.- Parameters:
timestamp- The timestamp of the firing timer.ctx- AnKeyedProcessFunction.OnTimerContextthat allows querying the timestamp, theTimeDomain, and the key of the firing timer and getting aTimerServicefor registering timers and querying the time. The context is only valid during the invocation of this method, do not store it.out- The collector for returning result values.- Throws:
Exception- This method may throw exceptions. Throwing an exception will cause the operation to fail and may trigger recovery.
-
-