public final class BatchRequest extends Object
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(com.google.api.client.http.HttpUnsuccessfulResponseHandler)
, 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.
Constructor and Description |
---|
BatchRequest(HttpTransport transport,
HttpRequestInitializer httpRequestInitializer)
Deprecated.
Please use AbstractGoogleClient#batch(HttpRequestInitializer) to instantiate your
batch request.
|
Modifier and Type | Method and Description |
---|---|
void |
execute()
Executes all queued HTTP requests in a single call, parses the responses and invokes callbacks.
|
GenericUrl |
getBatchUrl()
Returns the URL that will be hit when
execute() is called. |
Sleeper |
getSleeper()
Returns the sleeper.
|
<T,E> BatchRequest |
queue(HttpRequest httpRequest,
Class<T> dataClass,
Class<E> errorClass,
BatchCallback<T,E> callback)
Queues the specified
HttpRequest for batched execution. |
BatchRequest |
setBatchUrl(GenericUrl batchUrl)
Sets the URL that will be hit when
execute() is called. |
BatchRequest |
setSleeper(Sleeper sleeper)
Sets the sleeper.
|
int |
size()
Returns the number of queued requests in this batch request.
|
@Deprecated public BatchRequest(HttpTransport transport, HttpRequestInitializer httpRequestInitializer)
BatchRequest
.transport
- The transport to use for requestshttpRequestInitializer
- The initializer to use when creating an HttpRequest
or
null
for nonepublic BatchRequest setBatchUrl(GenericUrl batchUrl)
execute()
is called. The default value is https://www.googleapis.com/batch
.public GenericUrl getBatchUrl()
execute()
is called.public Sleeper getSleeper()
public BatchRequest setSleeper(Sleeper sleeper)
Sleeper.DEFAULT
.public <T,E> BatchRequest queue(HttpRequest httpRequest, Class<T> dataClass, Class<E> errorClass, BatchCallback<T,E> callback) throws IOException
HttpRequest
for batched execution. Batched requests are executed
when execute()
is called.T
- destination class typeE
- error class typehttpRequest
- HTTP RequestdataClass
- Data class the response will be parsed into or Void.class
to ignore
the contenterrorClass
- Data class the unsuccessful response will be parsed into or Void.class
to ignore the contentcallback
- Batch CallbackIOException
- If building the HTTP Request failspublic int size()
public void execute() throws IOException
Calling execute()
executes and clears the queued requests. This means that the
BatchRequest
object can be reused to queue(com.google.api.client.http.HttpRequest, java.lang.Class<T>, java.lang.Class<E>, com.google.api.client.googleapis.batch.BatchCallback<T, E>)
and execute()
requests
again.
IOException
Copyright © 2010–2020 Google. All rights reserved.