Interface LoadBalancedRetryPolicy
-
public interface LoadBalancedRetryPolicy
Retry logic to use for theLoadBalancerClient
.- Author:
- Ryan Baxter
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
canRetryNextServer(LoadBalancedRetryContext context)
Return true to retry the failed request on the next server from the load balancer.boolean
canRetrySameServer(LoadBalancedRetryContext context)
Return true to retry the failed request on the same server.void
close(LoadBalancedRetryContext context)
Called when the retry operation has ended.void
registerThrowable(LoadBalancedRetryContext context, Throwable throwable)
Called when the execution fails.boolean
retryableStatusCode(int statusCode)
If an exception is not thrown when making a request, this method will be called to see if the client would like to retry the request based on the status code returned.
-
-
-
Method Detail
-
canRetrySameServer
boolean canRetrySameServer(LoadBalancedRetryContext context)
Return true to retry the failed request on the same server. This method may be called more than once when executing a single operation.- Parameters:
context
- The context for the retry operation.- Returns:
- True to retry the failed request on the same server; false otherwise.
-
canRetryNextServer
boolean canRetryNextServer(LoadBalancedRetryContext context)
Return true to retry the failed request on the next server from the load balancer. This method may be called more than once when executing a single operation.- Parameters:
context
- The context for the retry operation.- Returns:
- True to retry the failed request on the next server from the load balancer; false otherwise.
-
close
void close(LoadBalancedRetryContext context)
Called when the retry operation has ended.- Parameters:
context
- The context for the retry operation.
-
registerThrowable
void registerThrowable(LoadBalancedRetryContext context, Throwable throwable)
Called when the execution fails.- Parameters:
context
- The context for the retry operation.throwable
- The throwable from the failed execution.
-
retryableStatusCode
boolean retryableStatusCode(int statusCode)
If an exception is not thrown when making a request, this method will be called to see if the client would like to retry the request based on the status code returned. For example, in Cloud Foundry, the router will return a404
when an app is not available. Since HTTP clients do not throw an exception when a404
is returned,retryableStatusCode
allows clients to force a retry.- Parameters:
statusCode
- The HTTP status code.- Returns:
- True if a retry should be attempted; false to just return the response.
-
-