- 2.70.0 (latest)
- 2.69.0
- 2.68.2
- 2.67.0
- 2.66.0
- 2.65.0
- 2.63.1
- 2.62.0
- 2.61.0
- 2.60.0
- 2.59.1
- 2.58.0
- 2.57.0
- 2.55.0
- 2.54.1
- 2.53.0
- 2.52.0
- 2.51.0
- 2.50.0
- 2.49.0
- 2.48.1
- 2.47.0
- 2.46.1
- 2.45.0
- 2.43.0
- 2.42.0
- 2.41.0
- 2.39.0
- 2.38.0
- 2.37.0
- 2.36.0
- 2.35.0
- 2.34.1
- 2.33.0
- 2.32.1
- 2.31.1
- 2.30.1
- 2.24.0
- 2.23.3
- 2.22.0
- 2.21.0
- 2.20.1
- 2.19.6
- 2.18.7
- 2.17.0
- 2.16.0
- 2.15.0
- 2.14.0
- 2.13.0
- 2.12.2
- 2.11.0
- 2.10.0
- 2.9.0
- 2.8.1
- 2.7.1
public
class
BatcherImpl<ElementT
,
ElementResultT
,
RequestT
,
ResponseT
>
implements
Batcher<ElementT
,
ElementResultT
>
Queues up the elements until #flush() is called; once batching is over, returned future resolves.
This class is not thread-safe, and expects to be used from a single thread.
Implements
com.google.api.gax.batching.Batcher<ElementT,ElementResultT>Type Parameters
Name | Description |
---|---|
ElementT | |
ElementResultT | |
RequestT | |
ResponseT |
Constructors
BatcherImpl(BatchingDescriptor<ElementT,ElementResultT,RequestT,ResponseT> batchingDescriptor, UnaryCallable<RequestT,ResponseT> unaryCallable, RequestT prototype, BatchingSettings batchingSettings, ScheduledExecutorService executor) (deprecated)
public
BatcherImpl
(
BatchingDescriptor<ElementT
,
ElementResultT
,
RequestT
,
ResponseT
>
batchingDescriptor
,
UnaryCallable<RequestT
,
ResponseT
>
unaryCallable
,
RequestT
prototype
,
BatchingSettings
batchingSettings
,
ScheduledExecutorService
executor
)
Deprecated. Please instantiate the Batcher with FlowController and ApiCallContext
Name | Description |
batchingDescriptor | BatchingDescriptor
< ElementT
, ElementResultT
, RequestT
, ResponseT
>
a BatchingDescriptor for transforming individual elements into wrappers request and response |
unaryCallable | UnaryCallable
< RequestT
, ResponseT
>
a UnaryCallable object |
prototype | RequestT
a RequestT object |
batchingSettings | BatchingSettings
a BatchingSettings with configuration of thresholds |
executor | ScheduledExecutorService
|
BatcherImpl(BatchingDescriptor<ElementT,ElementResultT,RequestT,ResponseT> batchingDescriptor, UnaryCallable<RequestT,ResponseT> unaryCallable, RequestT prototype, BatchingSettings batchingSettings, ScheduledExecutorService executor, FlowController flowController) (deprecated)
public
BatcherImpl
(
BatchingDescriptor<ElementT
,
ElementResultT
,
RequestT
,
ResponseT
>
batchingDescriptor
,
UnaryCallable<RequestT
,
ResponseT
>
unaryCallable
,
RequestT
prototype
,
BatchingSettings
batchingSettings
,
ScheduledExecutorService
executor
,
FlowController
flowController
)
Deprecated. Please instantiate the Batcher with ApiCallContext
Name | Description |
batchingDescriptor | BatchingDescriptor
< ElementT
, ElementResultT
, RequestT
, ResponseT
>
a BatchingDescriptor for transforming individual elements into wrappers request and response |
unaryCallable | UnaryCallable
< RequestT
, ResponseT
>
a UnaryCallable object |
prototype | RequestT
a RequestT object |
batchingSettings | BatchingSettings
a BatchingSettings with configuration of thresholds |
executor | ScheduledExecutorService
|
flowController | FlowController
a FlowController for throttling requests. If it's null, create a FlowController object from BatchingSettings#getFlowControlSettings() . |
BatcherImpl(BatchingDescriptor<ElementT,ElementResultT,RequestT,ResponseT> batchingDescriptor, UnaryCallable<RequestT,ResponseT> unaryCallable, RequestT prototype, BatchingSettings batchingSettings, ScheduledExecutorService executor, FlowController flowController, ApiCallContext callContext)
public
BatcherImpl
(
BatchingDescriptor<ElementT
,
ElementResultT
,
RequestT
,
ResponseT
>
batchingDescriptor
,
UnaryCallable<RequestT
,
ResponseT
>
unaryCallable
,
RequestT
prototype
,
BatchingSettings
batchingSettings
,
ScheduledExecutorService
executor
,
FlowController
flowController
,
ApiCallContext
callContext
)
Name | Description |
batchingDescriptor | BatchingDescriptor
< ElementT
, ElementResultT
, RequestT
, ResponseT
>
a BatchingDescriptor for transforming individual elements into wrappers request and response |
unaryCallable | UnaryCallable
< RequestT
, ResponseT
>
a UnaryCallable object |
prototype | RequestT
a RequestT object |
batchingSettings | BatchingSettings
a BatchingSettings with configuration of thresholds |
executor | ScheduledExecutorService
|
flowController | FlowController
a FlowController for throttling requests. If it's null, create a FlowController object from BatchingSettings#getFlowControlSettings() . |
callContext | ApiCallContext
a ApiCallContext object that'll be merged in unaryCallable |
Methods
add(ElementT element)
public
ApiFuture<ElementResultT>
add
(
ElementT
element
)
Queues the passed in element to be sent at some point in the future.
The element will be sent as part of a larger batch request at some point in the future. The returned ApiFuture will be resolved once the result for the element has been extracted from the batch response.
Note: Cancelling returned result simply marks the future cancelled, It would not stop the batch request.
Name | Description |
---|---|
element | ElementT
|
Type | Description |
---|---|
com.google.api.core.ApiFuture < ElementResultT > |
close()
public
void
close
()
Closes this Batcher by preventing new elements from being added, and then flushing the existing elements.
Type | Description |
---|---|
InterruptedException |
closeAsync()
public
ApiFuture<Void>
closeAsync
()
Closes this Batcher by preventing new elements from being added, and then sending outstanding elements. The returned future will be resolved when the last element completes
Type | Description |
---|---|
com.google.api.core.ApiFuture < Void > |
flush()
public
void
flush
()
Synchronously sends any pending elements as a batch and waits for all outstanding batches to be complete.
Type | Description |
---|---|
InterruptedException |
getFlowController()
public
FlowController
getFlowController
()
Type | Description |
---|---|
FlowController |
sendOutstanding()
public
void
sendOutstanding
()
Sends accumulated elements asynchronously for batching.
Note: This method can be invoked concurrently unlike #add and #close , which can only be called from a single user thread. Please take caution to avoid race condition.