Type
- The type of the messages created by the source.UId
- The type of the unique IDs which are consistent across sessions.SessionId
- The type of the IDs that are used for acknowledging elements (ids valid during
session).@PublicEvolving public abstract class MultipleIdsMessageAcknowledgingSourceBase<Type,UId,SessionId> extends MessageAcknowledgingSourceBase<Type,UId>
MessageAcknowledgingSourceBase
, this source handles two
types of ids:
Session ids are used to acknowledge messages in a session. When a checkpoint is restored, unacknowledged messages are redelivered. Duplicates are detected using the unique message ids which are checkpointed.
SourceFunction.SourceContext<T>
Modifier and Type | Field and Description |
---|---|
protected List<SessionId> |
sessionIds |
protected Deque<org.apache.flink.api.java.tuple.Tuple2<Long,List<SessionId>>> |
sessionIdsPerSnapshot |
pendingCheckpoints
Modifier | Constructor and Description |
---|---|
protected |
MultipleIdsMessageAcknowledgingSourceBase(Class<UId> idClass)
Creates a new MessageAcknowledgingSourceBase for IDs of the given type.
|
protected |
MultipleIdsMessageAcknowledgingSourceBase(org.apache.flink.api.common.typeinfo.TypeInformation<UId> idTypeInfo)
Creates a new MessageAcknowledgingSourceBase for IDs of the given type.
|
Modifier and Type | Method and Description |
---|---|
protected void |
acknowledgeIDs(long checkpointId,
Set<UId> uniqueIds)
Acknowledges the session ids.
|
protected abstract void |
acknowledgeSessionIDs(List<SessionId> sessionIds)
Acknowledges the session ids.
|
void |
close() |
void |
open(org.apache.flink.configuration.Configuration parameters) |
void |
snapshotState(org.apache.flink.runtime.state.FunctionSnapshotContext context)
This method is called when a snapshot for a checkpoint is requested.
|
addId, initializeState, notifyCheckpointAborted, notifyCheckpointComplete
getIterationRuntimeContext, getRuntimeContext, setRuntimeContext
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
cancel, run
protected transient Deque<org.apache.flink.api.java.tuple.Tuple2<Long,List<SessionId>>> sessionIdsPerSnapshot
protected MultipleIdsMessageAcknowledgingSourceBase(Class<UId> idClass)
idClass
- The class of the message ID type, used to create a serializer for the message
IDs.protected MultipleIdsMessageAcknowledgingSourceBase(org.apache.flink.api.common.typeinfo.TypeInformation<UId> idTypeInfo)
idTypeInfo
- The type information of the message ID type, used to create a serializer
for the message IDs.public void open(org.apache.flink.configuration.Configuration parameters) throws Exception
open
in interface org.apache.flink.api.common.functions.RichFunction
open
in class org.apache.flink.api.common.functions.AbstractRichFunction
Exception
public void close() throws Exception
close
in interface org.apache.flink.api.common.functions.RichFunction
close
in class MessageAcknowledgingSourceBase<Type,UId>
Exception
protected final void acknowledgeIDs(long checkpointId, Set<UId> uniqueIds)
acknowledgeIDs
in class MessageAcknowledgingSourceBase<Type,UId>
checkpointId
- The id of the current checkout to acknowledge ids for.uniqueIds
- The checkpointed unique ids which are ignored here. They only serve as a
means of de-duplicating messages when the acknowledgment after a checkpoint fails.protected abstract void acknowledgeSessionIDs(List<SessionId> sessionIds)
sessionIds
- The message ids for this session.public void snapshotState(org.apache.flink.runtime.state.FunctionSnapshotContext context) throws Exception
CheckpointedFunction
FunctionInitializationContext
when the Function was initialized, or offered now by FunctionSnapshotContext
itself.snapshotState
in interface CheckpointedFunction
snapshotState
in class MessageAcknowledgingSourceBase<Type,UId>
context
- the context for drawing a snapshot of the operatorException
- Thrown, if state could not be created ot restored.Copyright © 2014–2023 The Apache Software Foundation. All rights reserved.