Class BatchRequest (2.5.0)

public final class BatchRequest

An instance of this class represents a single batch of requests.

Sample use:


 // client is a AbstractGoogleClient (e.g.
 // com.google.api.services.books.Books)
 BatchRequest batch = client.batch(httpRequestInitializer);
 batch.queue(volumesList, Volumes.class, GoogleJsonErrorContainer.class,
     new BatchCallback<Volumes, GoogleJsonErrorContainer>() {

       public void onSuccess(Volumes volumes, HttpHeaders responseHeaders) {
         log("Success");
         printVolumes(volumes.getItems());
       }

       public void onFailure(GoogleJsonErrorContainer e, HttpHeaders responseHeaders) {
         log(e.getError().getMessage());
       }
     });
 batch.queue(volumesList, Volumes.class, GoogleJsonErrorContainer.class,
     new BatchCallback<Volumes, GoogleJsonErrorContainer>() {

       public void onSuccess(Volumes volumes, HttpHeaders responseHeaders) {
         log("Success");
         printVolumes(volumes.getItems());
       }

       public void onFailure(GoogleJsonErrorContainer e, HttpHeaders responseHeaders) {
         log(e.getError().getMessage());
       }
     });
 batch.execute();
 

The content of each individual response is stored in memory. There is thus a potential of encountering an OutOfMemoryError for very large responses.

Redirects are currently not followed in BatchRequest.

Implementation is not thread-safe.

Note: When setting an HttpUnsuccessfulResponseHandler by calling to HttpRequest#setUnsuccessfulResponseHandler, the handler is called for each unsuccessful part. As a result it's not recommended to use HttpBackOffUnsuccessfulResponseHandler on a batch request, since the back-off policy is invoked for each unsuccessful part.

Inheritance

java.lang.Object > BatchRequest

Constructors

BatchRequest(HttpTransport transport, HttpRequestInitializer httpRequestInitializer) (deprecated)

public BatchRequest(HttpTransport transport, HttpRequestInitializer httpRequestInitializer)

Deprecated. Please use AbstractGoogleClient#batch(HttpRequestInitializer) to instantiate your batch request.

Construct the BatchRequest.

Parameters
Name Description
transport com.google.api.client.http.HttpTransport

The transport to use for requests

httpRequestInitializer com.google.api.client.http.HttpRequestInitializer

The initializer to use when creating an HttpRequest or null for none

Methods

<T,E>queue(HttpRequest httpRequest, Class<T> dataClass, Class<E> errorClass, BatchCallback<T,E> callback)

public BatchRequest <T,E>queue(HttpRequest httpRequest, Class<T> dataClass, Class<E> errorClass, BatchCallback<T,E> callback)

Queues the specified HttpRequest for batched execution. Batched requests are executed when #execute() is called.

Parameters
Name Description
httpRequest com.google.api.client.http.HttpRequest

HTTP Request

dataClass Class<T>

Data class the response will be parsed into or Void.class to ignore the content

errorClass Class<E>

Data class the unsuccessful response will be parsed into or Void.class to ignore the content

callback BatchCallback<T,E>

Batch Callback

Returns
Type Description
BatchRequest

this Batch request

Exceptions
Type Description
IOException

If building the HTTP Request fails

execute()

public void execute()

Executes all queued HTTP requests in a single call, parses the responses and invokes callbacks.

Calling #execute() executes and clears the queued requests. This means that the BatchRequest object can be reused to #queue and #execute() requests again.

Exceptions
Type Description
IOException

getBatchUrl()

public GenericUrl getBatchUrl()

Returns the URL that will be hit when #execute() is called.

Returns
Type Description
com.google.api.client.http.GenericUrl

getSleeper()

public Sleeper getSleeper()

Returns the sleeper.

Returns
Type Description
com.google.api.client.util.Sleeper

setBatchUrl(GenericUrl batchUrl)

public BatchRequest setBatchUrl(GenericUrl batchUrl)

Sets the URL that will be hit when #execute() is called. The default value is https://www.googleapis.com/batch.

Parameter
Name Description
batchUrl com.google.api.client.http.GenericUrl
Returns
Type Description
BatchRequest

setSleeper(Sleeper sleeper)

public BatchRequest setSleeper(Sleeper sleeper)

Sets the sleeper. The default value is Sleeper#DEFAULT.

Parameter
Name Description
sleeper com.google.api.client.util.Sleeper
Returns
Type Description
BatchRequest

size()

public int size()

Returns the number of queued requests in this batch request.

Returns
Type Description
int