backoff

Type Alias ExponentialBackoff

Source
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.