W
- type of the writer objectT
- type of the items the sink will acceptpublic final class SinkBuilder<W,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<W,T> |
destroyFn(DistributedConsumer<? super W> destroyFn)
Sets the function that will destroy the writer and perform any cleanup.
|
SinkBuilder<W,T> |
flushFn(DistributedConsumer<? super W> flushFn)
Sets the function that implements the sink's flushing behavior.
|
SinkBuilder<W,T> |
preferredLocalParallelism(int preferredLocalParallelism)
Sets the local parallelism of the sink.
|
<T_NEW> SinkBuilder<W,T_NEW> |
receiveFn(DistributedBiConsumer<? super W,? super T_NEW> receiveFn)
Sets the function Jet will call upon receiving an item.
|
static <W> SinkBuilder<W,Void> |
sinkBuilder(String name,
DistributedFunction<Processor.Context,? extends W> 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 <W> SinkBuilder<W,Void> sinkBuilder(@Nonnull String name, @Nonnull DistributedFunction<Processor.Context,? extends W> createFn)
Sink
for the Pipeline API. It allows you to keep a
single-threaded, stateful writer object 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 writer 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 writer. 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 writer. This component is required.
flushFn
flushes the writer. This component is optional.
destroyFn
destroys the writer. This component is optional.
W
- type of the writer object@Nonnull public <T_NEW> SinkBuilder<W,T_NEW> receiveFn(@Nonnull DistributedBiConsumer<? super W,? super T_NEW> receiveFn)
createFn
and the received item. Its job is to push the item to the
writer.T_NEW
- type of the items the sink will acceptreceiveFn
- the "add item to the writer" function@Nonnull public SinkBuilder<W,T> flushFn(@Nonnull DistributedConsumer<? super W> flushFn)
You are not required to provide this function in case your implementation doesn't need it.
flushFn
- the optional "flush the writer" function@Nonnull public SinkBuilder<W,T> destroyFn(@Nonnull DistributedConsumer<? super W> 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 writer" function@Nonnull public SinkBuilder<W,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 © 2018 Hazelcast, Inc.. All rights reserved.