Class SourceBuilder.FaultTolerant<B,​S>

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      B restoreSnapshotFn​(BiConsumerEx<? super C,​? super java.util.List<S>> restoreSnapshotFn)
      Sets the function that restores the source's state from a snapshot.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • restoreSnapshotFn

        @Nonnull
        public B restoreSnapshotFn​(@Nonnull
                                   BiConsumerEx<? super C,​? super java.util.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 createSnapshotFn in all parallel instances. This is why restoreSnapshotFn accepts 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 here.

        Parameters:
        restoreSnapshotFn - the function to restore the state into the context. It must be stateless.
        Since:
        Jet 3.1