public class HttpBackOffIOExceptionHandler 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
Implements
HttpIOExceptionHandlerConstructors
HttpBackOffIOExceptionHandler(BackOff backOff)
public HttpBackOffIOExceptionHandler(BackOff backOff)
Constructs a new instance from a BackOff.
Name | Description |
backOff | BackOff back-off policy |
Methods
getBackOff()
public final BackOff getBackOff()
Returns the back-off.
Type | Description |
BackOff |
getSleeper()
public final Sleeper getSleeper()
Returns the sleeper.
Type | Description |
Sleeper |
handleIOException(HttpRequest request, boolean supportsRetry)
public boolean handleIOException(HttpRequest request, boolean supportsRetry)
Invoked when an 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.
Name | Description |
request | HttpRequest |
supportsRetry | boolean |
Type | Description |
boolean |
Type | Description |
IOException |
setSleeper(Sleeper sleeper)
public HttpBackOffIOExceptionHandler setSleeper(Sleeper sleeper)
Sets the 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.
Name | Description |
sleeper | Sleeper |
Type | Description |
HttpBackOffIOExceptionHandler |