move exponential backoff util to different submod
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
2259e2c82f
commit
7e4453620e
7 changed files with 39 additions and 33 deletions
29
src/core/utils/time/exponential_backoff.rs
Normal file
29
src/core/utils/time/exponential_backoff.rs
Normal file
|
@ -0,0 +1,29 @@
|
|||
use std::{cmp, time::Duration};
|
||||
|
||||
/// Returns false if the exponential backoff has expired based on the inputs
|
||||
#[inline]
|
||||
#[must_use]
|
||||
pub fn continue_exponential_backoff_secs(
|
||||
min: u64,
|
||||
max: u64,
|
||||
elapsed: Duration,
|
||||
tries: u32,
|
||||
) -> bool {
|
||||
let min = Duration::from_secs(min);
|
||||
let max = Duration::from_secs(max);
|
||||
continue_exponential_backoff(min, max, elapsed, tries)
|
||||
}
|
||||
|
||||
/// Returns false if the exponential backoff has expired based on the inputs
|
||||
#[inline]
|
||||
#[must_use]
|
||||
pub fn continue_exponential_backoff(
|
||||
min: Duration,
|
||||
max: Duration,
|
||||
elapsed: Duration,
|
||||
tries: u32,
|
||||
) -> bool {
|
||||
let min = min.saturating_mul(tries).saturating_mul(tries);
|
||||
let min = cmp::min(min, max);
|
||||
elapsed < min
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue