Class ExponentialBackOff.Builder
- Enclosing class:
ExponentialBackOff
ExponentialBackOff
.
Implementation is not thread-safe.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) int
The initial retry interval in milliseconds.(package private) int
The maximum elapsed time in milliseconds after instantiatingExponentialBackOff
or callingExponentialBackOff.reset()
after whichExponentialBackOff.nextBackOffMillis()
returnsBackOff.STOP
.(package private) int
The maximum value of the back off period in milliseconds.(package private) double
The value to multiply the current interval with for each retry attempt.(package private) NanoClock
Nano clock.(package private) double
The randomization factor to use for creating a range around the retry interval. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuild()
Builds a new instance ofExponentialBackOff
.final int
Returns the initial retry interval in milliseconds.final int
Returns the maximum elapsed time in milliseconds.final int
Returns the maximum value of the back off period in milliseconds.final double
Returns the value to multiply the current interval with for each retry attempt.final NanoClock
Returns the nano clock.final double
Returns the randomization factor to use for creating a range around the retry interval.setInitialIntervalMillis
(int initialIntervalMillis) Sets the initial retry interval in milliseconds.setMaxElapsedTimeMillis
(int maxElapsedTimeMillis) Sets the maximum elapsed time in milliseconds.setMaxIntervalMillis
(int maxIntervalMillis) Sets the maximum value of the back off period in milliseconds.setMultiplier
(double multiplier) Sets the value to multiply the current interval with for each retry attempt.setNanoClock
(NanoClock nanoClock) Sets the nano clock (NanoClock.SYSTEM
by default).setRandomizationFactor
(double randomizationFactor) Sets the randomization factor to use for creating a range around the retry interval.
-
Field Details
-
initialIntervalMillis
int initialIntervalMillisThe initial retry interval in milliseconds. -
randomizationFactor
double randomizationFactorThe randomization factor to use for creating a range around the retry interval.A randomization factor of 0.5 results in a random period ranging between 50% below and 50% above the retry interval.
-
multiplier
double multiplierThe value to multiply the current interval with for each retry attempt. -
maxIntervalMillis
int maxIntervalMillisThe maximum value of the back off period in milliseconds. Once the retry interval reaches this value it stops increasing. -
maxElapsedTimeMillis
int maxElapsedTimeMillisThe maximum elapsed time in milliseconds after instantiatingExponentialBackOff
or callingExponentialBackOff.reset()
after whichExponentialBackOff.nextBackOffMillis()
returnsBackOff.STOP
. -
nanoClock
NanoClock nanoClockNano clock.
-
-
Constructor Details
-
Builder
public Builder()
-
-
Method Details
-
build
Builds a new instance ofExponentialBackOff
. -
getInitialIntervalMillis
public final int getInitialIntervalMillis()Returns the initial retry interval in milliseconds. The default value isExponentialBackOff.DEFAULT_INITIAL_INTERVAL_MILLIS
. -
setInitialIntervalMillis
Sets the initial retry interval in milliseconds. The default value isExponentialBackOff.DEFAULT_INITIAL_INTERVAL_MILLIS
. Must be> 0
.Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
-
getRandomizationFactor
public final double getRandomizationFactor()Returns the randomization factor to use for creating a range around the retry interval. The default value isExponentialBackOff.DEFAULT_RANDOMIZATION_FACTOR
.A randomization factor of 0.5 results in a random period ranging between 50% below and 50% above the retry interval.
Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
-
setRandomizationFactor
Sets the randomization factor to use for creating a range around the retry interval. The default value isExponentialBackOff.DEFAULT_RANDOMIZATION_FACTOR
. Must fall in the range0 <= randomizationFactor < 1
.A randomization factor of 0.5 results in a random period ranging between 50% below and 50% above the retry interval.
Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
-
getMultiplier
public final double getMultiplier()Returns the value to multiply the current interval with for each retry attempt. The default value isExponentialBackOff.DEFAULT_MULTIPLIER
. -
setMultiplier
Sets the value to multiply the current interval with for each retry attempt. The default value isExponentialBackOff.DEFAULT_MULTIPLIER
. Must be>= 1
.Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
-
getMaxIntervalMillis
public final int getMaxIntervalMillis()Returns the maximum value of the back off period in milliseconds. Once the current interval reaches this value it stops increasing. The default value isExponentialBackOff.DEFAULT_MAX_INTERVAL_MILLIS
. Must be>= initialInterval
. -
setMaxIntervalMillis
Sets the maximum value of the back off period in milliseconds. Once the current interval reaches this value it stops increasing. The default value isExponentialBackOff.DEFAULT_MAX_INTERVAL_MILLIS
.Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
-
getMaxElapsedTimeMillis
public final int getMaxElapsedTimeMillis()Returns the maximum elapsed time in milliseconds. The default value isExponentialBackOff.DEFAULT_MAX_ELAPSED_TIME_MILLIS
.If the time elapsed since an
ExponentialBackOff
instance is created goes past the max_elapsed_time then the methodExponentialBackOff.nextBackOffMillis()
starts returningBackOff.STOP
. The elapsed time can be reset by callingExponentialBackOff.reset()
. -
setMaxElapsedTimeMillis
Sets the maximum elapsed time in milliseconds. The default value isExponentialBackOff.DEFAULT_MAX_ELAPSED_TIME_MILLIS
. Must be> 0
.If the time elapsed since an
ExponentialBackOff
instance is created goes past the max_elapsed_time then the methodExponentialBackOff.nextBackOffMillis()
starts returningBackOff.STOP
. The elapsed time can be reset by callingExponentialBackOff.reset()
.Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
-
getNanoClock
Returns the nano clock. -
setNanoClock
Sets the nano clock (NanoClock.SYSTEM
by default).Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
-