@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–2023 Google. All rights reserved.