Struct backon::ExponentialBuilder
source · pub struct ExponentialBuilder { /* private fields */ }
Expand description
ExponentialBuilder is used to build a ExponentialBackoff
§Default
- jitter: false
- factor: 2
- min_delay: 1s
- max_delay: 60s
- max_times: 3
§Examples
use anyhow::Result;
use backon::ExponentialBuilder;
use backon::Retryable;
async fn fetch() -> Result<String> {
Ok(reqwest::get("https://www.rust-lang.org")
.await?
.text()
.await?)
}
#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<()> {
let content = fetch.retry(&ExponentialBuilder::default()).await?;
println!("fetch succeeded: {}", content);
Ok(())
}
Implementations§
source§impl ExponentialBuilder
impl ExponentialBuilder
sourcepub fn with_jitter(self) -> Self
pub fn with_jitter(self) -> Self
Set jitter of current backoff.
If jitter is enabled, ExponentialBackoff will add a random jitter in `[0, min_delay) to current delay.
sourcepub fn with_factor(self, factor: f32) -> Self
pub fn with_factor(self, factor: f32) -> Self
sourcepub fn with_min_delay(self, min_delay: Duration) -> Self
pub fn with_min_delay(self, min_delay: Duration) -> Self
Set min_delay of current backoff.
sourcepub fn with_max_delay(self, max_delay: Duration) -> Self
pub fn with_max_delay(self, max_delay: Duration) -> Self
Set max_delay of current backoff.
Delay will not increasing if current delay is larger than max_delay.
sourcepub fn with_max_times(self, max_times: usize) -> Self
pub fn with_max_times(self, max_times: usize) -> Self
Set max_times of current backoff.
Backoff will return None
if max times is reaching.
Trait Implementations§
source§impl BackoffBuilder for ExponentialBuilder
impl BackoffBuilder for ExponentialBuilder
source§impl Clone for ExponentialBuilder
impl Clone for ExponentialBuilder
source§fn clone(&self) -> ExponentialBuilder
fn clone(&self) -> ExponentialBuilder
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for ExponentialBuilder
impl Debug for ExponentialBuilder
Auto Trait Implementations§
impl Freeze for ExponentialBuilder
impl RefUnwindSafe for ExponentialBuilder
impl Send for ExponentialBuilder
impl Sync for ExponentialBuilder
impl Unpin for ExponentialBuilder
impl UnwindSafe for ExponentialBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more