C
- type of the context objectT
- type of the items the sink will acceptpublic final class SinkBuilder<C,T> extends Object
Modifier and Type | Method and Description |
---|---|
Sink<T> |
build()
Creates and returns the
Sink with the components you supplied to
this builder. |
SinkBuilder<C,T> |
destroyFn(ConsumerEx<? super C> destroyFn)
Sets the function that will destroy the context object and perform any
cleanup.
|
SinkBuilder<C,T> |
flushFn(ConsumerEx<? super C> flushFn)
Sets the function that implements the sink's flushing behavior.
|
SinkBuilder<C,T> |
preferredLocalParallelism(int preferredLocalParallelism)
Sets the local parallelism of the sink.
|
<T_NEW> SinkBuilder<C,T_NEW> |
receiveFn(BiConsumerEx<? super C,? super T_NEW> receiveFn)
Sets the function Jet will call upon receiving an item.
|
static <C> SinkBuilder<C,Void> |
sinkBuilder(String name,
FunctionEx<Processor.Context,? extends C> createFn)
Returns a builder object that offers a step-by-step fluent API to build
a custom
Sink for the Pipeline API. |
@Nonnull public static <C> SinkBuilder<C,Void> sinkBuilder(@Nonnull String name, @Nonnull FunctionEx<Processor.Context,? extends C> createFn)
Sink
for the Pipeline API. It allows you to keep a
single-threaded and stateful context object, it got from your
createFn
, in each instance of a Jet worker dedicated to driving
the sink. Its primary intended purpose is to serve as the holder of
references to external resources and optional buffers. Keep in mind that
only the context object may be stateful; the functions you provide must
hold no mutable state of their own.
These are the callback functions you can provide to implement the sink's behavior:
createFn
creates the context object. Gets the processor
context as argument which can be used to obtain local Jet instance,
global processor index etc. It will be called once for each worker
thread. This component is required.
onReceiveFn
gets notified of each item the sink receives and
(typically) passes it to the context. This component is required.
flushFn
flushes the context. This component is optional.
destroyFn
destroys the context. This component is optional.
All the functions must be stateless.
C
- type of the context objectname
- the name of the processorcreateFn
- the function to create the sink context, given a
processor context. It must be stateless.@Nonnull public <T_NEW> SinkBuilder<C,T_NEW> receiveFn(@Nonnull BiConsumerEx<? super C,? super T_NEW> receiveFn)
createFn
and the received item. Its job is to push the item to the
context.T_NEW
- type of the items the sink will acceptreceiveFn
- the "add item to the context" function. It must be
stateless.@Nonnull public SinkBuilder<C,T> flushFn(@Nonnull ConsumerEx<? super C> flushFn)
You are not required to provide this function in case your implementation doesn't need it.
flushFn
- the optional "flush the context" function. It must be
stateless.@Nonnull public SinkBuilder<C,T> destroyFn(@Nonnull ConsumerEx<? super C> destroyFn)
flushFn
and the call to destroyFn
.
You are not required to provide this function in case your implementation doesn't need it.
destroyFn
- the optional "destroy the context object" function. It
must be stateless.@Nonnull public SinkBuilder<C,T> preferredLocalParallelism(int preferredLocalParallelism)
createFn
can consult procContext.totalParallelism()
and procContext.globalProcessorIndex()
.
Jet calls createFn
exactly once with each globalProcessorIndex
from 0 to totalParallelism - 1
.
The default value of this property is 1.
Copyright © 2021 Hazelcast, Inc.. All rights reserved.