Class ExponentialBackOffSchedulingStrategy
java.lang.Object
org.apache.hc.client5.http.impl.schedule.ExponentialBackOffSchedulingStrategy
- All Implemented Interfaces:
SchedulingStrategy
@Contract(threading=STATELESS)
public class ExponentialBackOffSchedulingStrategy
extends Object
implements SchedulingStrategy
An implementation that backs off exponentially based on the number of
consecutive failed attempts. It uses the following defaults:
no delay in case it was never tried or didn't fail so far 6 s delay for one failed attempt (=The following equation is used to calculate the delay for a specific pending operation:getInitialExpiry()
) 60 s delay for two failed attempts 10 min delay for three failed attempts 100 min delay for four failed attempts ~16 h delay for five failed attempts 24 h delay for six or more failed attempts (=getMaxExpiry()
)
delay =The resulting delay won't exceedgetInitialExpiry()
* Math.pow(getBackOffRate()
,consecutiveFailedAttempts
- 1))
getMaxExpiry()
.- Since:
- 5.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final long
static final long
static final org.apache.hc.core5.util.TimeValue
static final org.apache.hc.core5.util.TimeValue
private final org.apache.hc.core5.util.TimeValue
private final org.apache.hc.core5.util.TimeValue
-
Constructor Summary
ConstructorsConstructorDescriptionExponentialBackOffSchedulingStrategy
(long backOffRate) ExponentialBackOffSchedulingStrategy
(long backOffRate, org.apache.hc.core5.util.TimeValue initialExpiry) ExponentialBackOffSchedulingStrategy
(long backOffRate, org.apache.hc.core5.util.TimeValue initialExpiry, org.apache.hc.core5.util.TimeValue maxExpiry) -
Method Summary
Modifier and TypeMethodDescriptionprotected org.apache.hc.core5.util.TimeValue
calculateDelay
(int consecutiveFailedAttempts) long
org.apache.hc.core5.util.TimeValue
org.apache.hc.core5.util.TimeValue
org.apache.hc.core5.util.TimeValue
schedule
(int attemptNumber) Schedules execution time for an operation.
-
Field Details
-
DEFAULT_BACK_OFF_RATE
public static final long DEFAULT_BACK_OFF_RATE- See Also:
-
DEFAULT_INITIAL_EXPIRY
public static final org.apache.hc.core5.util.TimeValue DEFAULT_INITIAL_EXPIRY -
DEFAULT_MAX_EXPIRY
public static final org.apache.hc.core5.util.TimeValue DEFAULT_MAX_EXPIRY -
backOffRate
private final long backOffRate -
initialExpiry
private final org.apache.hc.core5.util.TimeValue initialExpiry -
maxExpiry
private final org.apache.hc.core5.util.TimeValue maxExpiry
-
-
Constructor Details
-
ExponentialBackOffSchedulingStrategy
public ExponentialBackOffSchedulingStrategy(long backOffRate, org.apache.hc.core5.util.TimeValue initialExpiry, org.apache.hc.core5.util.TimeValue maxExpiry) -
ExponentialBackOffSchedulingStrategy
public ExponentialBackOffSchedulingStrategy(long backOffRate, org.apache.hc.core5.util.TimeValue initialExpiry) -
ExponentialBackOffSchedulingStrategy
public ExponentialBackOffSchedulingStrategy(long backOffRate) -
ExponentialBackOffSchedulingStrategy
public ExponentialBackOffSchedulingStrategy()
-
-
Method Details
-
schedule
public org.apache.hc.core5.util.TimeValue schedule(int attemptNumber) Description copied from interface:SchedulingStrategy
Schedules execution time for an operation.- Specified by:
schedule
in interfaceSchedulingStrategy
-
getBackOffRate
public long getBackOffRate() -
getInitialExpiry
public org.apache.hc.core5.util.TimeValue getInitialExpiry() -
getMaxExpiry
public org.apache.hc.core5.util.TimeValue getMaxExpiry() -
calculateDelay
protected org.apache.hc.core5.util.TimeValue calculateDelay(int consecutiveFailedAttempts)
-