public static class ExponentialBackOff.Builder extends Object
ExponentialBackOff
.
Implementation is not thread-safe.
Constructor and Description |
---|
Builder() |
Modifier and Type | Method and Description |
---|---|
ExponentialBackOff |
build()
Builds a new instance of
ExponentialBackOff . |
int |
getInitialIntervalMillis()
Returns the initial retry interval in milliseconds.
|
int |
getMaxElapsedTimeMillis()
Returns the maximum elapsed time in milliseconds.
|
int |
getMaxIntervalMillis()
Returns the maximum value of the back off period in milliseconds.
|
double |
getMultiplier()
Returns the value to multiply the current interval with for each retry attempt.
|
NanoClock |
getNanoClock()
Returns the nano clock.
|
double |
getRandomizationFactor()
Returns the randomization factor to use for creating a range around the retry interval.
|
ExponentialBackOff.Builder |
setInitialIntervalMillis(int initialIntervalMillis)
Sets the initial retry interval in milliseconds.
|
ExponentialBackOff.Builder |
setMaxElapsedTimeMillis(int maxElapsedTimeMillis)
Sets the maximum elapsed time in milliseconds.
|
ExponentialBackOff.Builder |
setMaxIntervalMillis(int maxIntervalMillis)
Sets the maximum value of the back off period in milliseconds.
|
ExponentialBackOff.Builder |
setMultiplier(double multiplier)
Sets the value to multiply the current interval with for each retry attempt.
|
ExponentialBackOff.Builder |
setNanoClock(NanoClock nanoClock)
Sets the nano clock (
NanoClock.SYSTEM by default). |
ExponentialBackOff.Builder |
setRandomizationFactor(double randomizationFactor)
Sets the randomization factor to use for creating a range around the retry interval.
|
public ExponentialBackOff build()
ExponentialBackOff
.public final int getInitialIntervalMillis()
ExponentialBackOff.DEFAULT_INITIAL_INTERVAL_MILLIS
.public ExponentialBackOff.Builder setInitialIntervalMillis(int initialIntervalMillis)
ExponentialBackOff.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.
public final double getRandomizationFactor()
ExponentialBackOff.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.
public ExponentialBackOff.Builder setRandomizationFactor(double randomizationFactor)
ExponentialBackOff.DEFAULT_RANDOMIZATION_FACTOR
. Must fall in the range 0 <=
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.
public final double getMultiplier()
ExponentialBackOff.DEFAULT_MULTIPLIER
.public ExponentialBackOff.Builder setMultiplier(double multiplier)
ExponentialBackOff.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.
public final int getMaxIntervalMillis()
ExponentialBackOff.DEFAULT_MAX_INTERVAL_MILLIS
. Must be >= initialInterval
.public ExponentialBackOff.Builder setMaxIntervalMillis(int maxIntervalMillis)
ExponentialBackOff.DEFAULT_MAX_INTERVAL_MILLIS
.
Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
public final int getMaxElapsedTimeMillis()
ExponentialBackOff.DEFAULT_MAX_ELAPSED_TIME_MILLIS
.
If the time elapsed since an ExponentialBackOff
instance is created goes past the
max_elapsed_time then the method ExponentialBackOff.nextBackOffMillis()
starts returning BackOff.STOP
. The elapsed time can be reset by calling ExponentialBackOff.reset()
.
public ExponentialBackOff.Builder setMaxElapsedTimeMillis(int maxElapsedTimeMillis)
ExponentialBackOff.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 method ExponentialBackOff.nextBackOffMillis()
starts returning BackOff.STOP
. The elapsed time can be reset by calling ExponentialBackOff.reset()
.
Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
public final NanoClock getNanoClock()
public ExponentialBackOff.Builder setNanoClock(NanoClock nanoClock)
NanoClock.SYSTEM
by default).
Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
Copyright © 2011–2022 Google. All rights reserved.