Package com.google.api.gax.batching
Class ThresholdBatcher<E>
- java.lang.Object
-
- com.google.api.gax.batching.ThresholdBatcher<E>
-
public final class ThresholdBatcher<E> extends Object
Queues up elements until either a duration of time has passed or any threshold in a given set of thresholds is breached, and then delivers the elements in a batch to the consumer.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classThresholdBatcher.Builder<E>Builder for a ThresholdBatcher.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(E e)Adds an element to the batcher.static <E> ThresholdBatcher.Builder<E>newBuilder()Get a new builder for a ThresholdBatcher.ApiFuture<Void>pushCurrentBatch()Push the current batch to the batch receiver.
-
-
-
Method Detail
-
newBuilder
public static <E> ThresholdBatcher.Builder<E> newBuilder()
Get a new builder for a ThresholdBatcher.
-
add
public void add(E e) throws FlowController.FlowControlException
Adds an element to the batcher. If the element causes the collection to go past any of the thresholds, the batch will be sent to theThresholdBatchReceiver.
-
pushCurrentBatch
public ApiFuture<Void> pushCurrentBatch()
Push the current batch to the batch receiver. Returns an ApiFuture that completes once the batch has been processed by the batch receiver and the flow controller resources have been released.Note that this future can complete for the current batch before previous batches have completed, so it cannot be depended upon for flushing.
-
-