pub type ExponentialBackoff = ExponentialBackoff<SystemClock>;
Expand description
Exponential backoff policy with system’s clock.
This type is preferred over
exponential::ExponentialBackoff
as it is generic over any Clocks
and in the real world mostly system’s clock is used.
Aliased Type§
struct ExponentialBackoff {
pub current_interval: Duration,
pub initial_interval: Duration,
pub randomization_factor: f64,
pub multiplier: f64,
pub max_interval: Duration,
pub start_time: Instant,
pub max_elapsed_time: Option<Duration>,
pub clock: SystemClock,
}
Fields§
§current_interval: Duration
The current retry interval.
initial_interval: Duration
The initial retry interval.
randomization_factor: f64
The 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: f64
The value to multiply the current interval with for each retry attempt.
max_interval: Duration
The maximum value of the back off period. Once the retry interval reaches this value it stops increasing.
start_time: Instant
The system time. It is calculated when an ExponentialBackoff
instance is
created and is reset when retry
is called.
max_elapsed_time: Option<Duration>
The maximum elapsed time after instantiating ExponentialBackfff
or calling
reset
after which next_backoff
returns None
.
clock: SystemClock
The clock used to get the current time.