jittered_backoff

Function jittered_backoff 

Source
pub fn jittered_backoff(attempt: u32, base: Duration, max: Duration) -> Duration
Expand description

Calculate jittered exponential backoff duration

Adds random jitter (±25%) to prevent thundering herd problem

§Examples

use std::time::Duration;
use ipfrs_network::utils::jittered_backoff;

let backoff = jittered_backoff(2, Duration::from_secs(1), Duration::from_secs(60));
// Should be roughly 4 seconds ± 25%
assert!(backoff >= Duration::from_secs(3));
assert!(backoff <= Duration::from_secs(5));