@Beta public class HttpBackOffIOExceptionHandler extends Object implements HttpIOExceptionHandler
Beta
HttpIOExceptionHandler
implementation with BackOff
.
It is designed to work with only one HttpRequest
at a time. As a result you MUST create a
new instance of HttpBackOffIOExceptionHandler
with a new instance of BackOff
for
each instance of HttpRequest
.
Sample usage:
request.setIOExceptionHandler(new HttpBackOffIOExceptionHandler(new ExponentialBackOff());
Note: Implementation doesn't call BackOff.reset()
at all, since it expects a new
BackOff
instance.
Implementation is not thread-safe
Constructor and Description |
---|
HttpBackOffIOExceptionHandler(BackOff backOff)
Constructs a new instance from a
BackOff . |
Modifier and Type | Method and Description |
---|---|
BackOff |
getBackOff()
Returns the back-off.
|
Sleeper |
getSleeper()
Returns the sleeper.
|
boolean |
handleIOException(HttpRequest request,
boolean supportsRetry)
Invoked when an
IOException is thrown during an HTTP request. |
HttpBackOffIOExceptionHandler |
setSleeper(Sleeper sleeper)
Sets the sleeper.
|
public final BackOff getBackOff()
public final Sleeper getSleeper()
public HttpBackOffIOExceptionHandler setSleeper(Sleeper sleeper)
The default value is Sleeper.DEFAULT
.
Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
public boolean handleIOException(HttpRequest request, boolean supportsRetry) throws IOException
IOException
is thrown during an HTTP request.
There is a simple rule that one must follow: If you modify the request object or modify its
execute interceptors in a way that should resolve the error, you must return true
to
issue a retry.
Handles the request with BackOff
. That means that if back-off is required a call to
Sleeper.sleep(long)
will be made.
handleIOException
in interface HttpIOExceptionHandler
request
- request object that can be read from for context or modified before retrysupportsRetry
- whether there will actually be a retry if this handler return true
. Some handlers may want to have an effect only when there will actually be a retry
after they handle their event (e.g. a handler that implements backoff policy).IOException
Copyright © 2011–2019 Google. All rights reserved.