com.hazelcast.jet.core

## Interface ProcessorSupplier

- All Superinterfaces:
    Serializable
  Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

      @FunctionalInterface
      public interface ProcessorSupplier
      extends Serializable

  Factory of `Processor` instances. Part of the initialization chain as explained on `ProcessorMetaSupplier`.
  Since:
    3.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `ProcessorSupplier.Context` Context passed to the supplier in the `init()` call.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default void` | `close(Throwable error)` Called after the execution has finished on all members - successfully or not.
    `Collection<? extends Processor>` | `get(int count)` Called after `init(Context)` to retrieve instances of `Processor` that will be used during the execution of the Jet job.
    `default void` | `init(ProcessorSupplier.Context context)` Called on each cluster member after deserialization.
    `static ProcessorSupplier` | `of(SupplierEx<? extends Processor> processorSupplier)` Returns a `ProcessorSupplier` which will delegate to the given `Supplier<Processor>` to create all `Processor` instances.

- - ### Method Detail

    - #### init

          default void init(@Nonnull
                            ProcessorSupplier.Context context)
                     throws Exception

      Called on each cluster member after deserialization.
      Throws:
        `Exception`

    - #### get

          @Nonnull
          Collection<? extends Processor> get(int count)

      Called after `init(Context)` to retrieve instances of `Processor` that will be used during the execution of the Jet job.
      Parameters:
        `count` - the number of processor this method is required to create and return. It is equal to `ProcessorMetaSupplier.Context.localParallelism()`.

    - #### close

          default void close(@Nullable
                             Throwable error)
                      throws Exception

      Called after the execution has finished on all members - successfully or not. This method will be called after `Processor.close()` has been called on all available members.

      If the execution was aborted due to a member leaving the cluster, it is called immediately (but not before `Processor.close()` for local processors). In this case, it can happen that the job is still running on some other member (but not on this member).

      If this method throws an exception, it will be logged and ignored; it won't be reported as a job failure.

      Note: this method can be called even if `init()` or `get()` were not called yet in case the job fails during the init phase.

      Parameters:
        `error` - the exception (if any) that caused the job to fail; `null` in the case of successful job completion
      Throws:
        `Exception`

    - #### of

          @Nonnull
          static ProcessorSupplier of(@Nonnull
                                               SupplierEx<? extends Processor> processorSupplier)

      Returns a `ProcessorSupplier` which will delegate to the given `Supplier<Processor>` to create all `Processor` instances.

Copyright © 2020. All rights reserved.