Class BatcherImpl<ElementT,ElementResultT,RequestT,ResponseT> (2.66.0)

  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.

Inheritance

java.lang.Object > BatcherImpl<ElementT,ElementResultT,RequestT,ResponseT>

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

Parameters
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

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

Parameters
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

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 
 ) 
 
Parameters
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

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.

Parameter
Name
Description
element
ElementT
Returns
Type
Description
ApiFuture < ElementResultT >

cancelOutstanding()

  public 
  
 void 
  
 cancelOutstanding 
 () 
 

Cancels all outstanding batch RPCs.

close()

  public 
  
 void 
  
 close 
 () 
 

Closes this Batcher by preventing new elements from being added, then flushing the existing elements and waiting for all the outstanding work to be resolved.

Exceptions
Type
Description

close(Duration timeout)

  public 
  
 void 
  
 close 
 ( 
 Duration 
  
 timeout 
 ) 
 

Closes this Batcher by preventing new elements from being added, then flushing the existing elements and waiting for all the outstanding work to be resolved. If all of the outstanding work has not been resolved, then a BatchingException will be thrown with details of the remaining work. The batcher will remain in a closed state and will not allow additional elements to be added.

Parameter
Name
Description
timeout
Exceptions
Type
Description

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

Returns
Type
Description

flush()

  public 
  
 void 
  
 flush 
 () 
 

Synchronously sends any pending elements as a batch and waits for all outstanding batches to be complete.

Exceptions
Type
Description

getFlowController()

  public 
  
 FlowController 
  
 getFlowController 
 () 
 
Returns
Type
Description

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.

Create a Mobile Website
View Site in Mobile | Classic
Share by: