- Type Parameters:
B- type of the builder this sub-builder was created from
S- type of the object saved to the state snapshot
public final class SourceBuilder.FaultTolerant<B,S> extends Object
restoreSnapshotFn(com.hazelcast.function.BiConsumerEx<? super C, ? super java.util.List<S>>)after adding a
restoreSnapshotFn@Nonnull public B restoreSnapshotFn(@Nonnull BiConsumerEx<? super C,? super List<S>> restoreSnapshotFn)Sets the function that restores the source's state from a snapshot.
When Jet is restarting a job after it was interrupted (failure or other reasons), it first initializes your source as if starting a new job and then passes the snapshot object (the one it got from your
createSnapshotFn) to this function. Then it starts calling
fillBufferFn, which must resume emitting the stream from the same item it was about to emit when the snapshot was taken.
If your source is not distributed, the `List` in the second argument contains exactly 1 element; it is safe to use `get(0)` on it. If your source is distributed, the list will contain objects returned by
createSnapshotFnin all parallel instances. This is why
restoreSnapshotFnaccepts a list of snapshot objects. It should figure out which part of the snapshot data pertains to it and it can do so as explained
restoreSnapshotFn- the function to restore the state into the context. It must be stateless.