public class ExponentialDelayPolicy extends java.lang.Object implements DelayPolicy
Constructor and Description |
---|
ExponentialDelayPolicy(long delayMillis,
long maxDelayMillis,
double growthFactor)
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
long |
getDelay(int numAttempts,
long lastDelay)
Gets the minimum amount of time that must elapse before the next retry
attempt.
|
java.lang.String |
toString()
Returns a string of the form:
"10 seconds after first attempt, increasing by 2x for each additional attempt up to 300 seconds".
|
public ExponentialDelayPolicy(long delayMillis, long maxDelayMillis, double growthFactor)
delayMillis
- -
the minimum delay (in milliseconds) for the first retry
attempt; must be > 0maxDelayMillis
- -
the maximum cap (in milliseconds) applied to the computed
delay; must be >= delayMillisgrowthFactor
- -
the exponential growth factor applied to the previous delay in
order to compute the next delay; must be >= 1.0 with
1.0
resulting in a fixed delaypublic long getDelay(int numAttempts, long lastDelay)
getDelay
in interface DelayPolicy
numAttempts
- -
the number of previous attempts (including first attempt and
retries); assumed to be >= 1lastDelay
- -
the delay (in milliseconds) returned by the previous call to
this method (i.e., with numAttempts-1
); -1 if
not previously code (i.e., when numAttempts==0
public java.lang.String toString()
toString
in interface DelayPolicy
toString
in class java.lang.Object