Struct google_cloud_bigquery::query::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) -> ExponentialBuilder
pub fn with_jitter(self) -> ExponentialBuilder
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) -> ExponentialBuilder
pub fn with_factor(self, factor: f32) -> ExponentialBuilder
sourcepub fn with_min_delay(self, min_delay: Duration) -> ExponentialBuilder
pub fn with_min_delay(self, min_delay: Duration) -> ExponentialBuilder
Set min_delay of current backoff.
sourcepub fn with_max_delay(self, max_delay: Duration) -> ExponentialBuilder
pub fn with_max_delay(self, max_delay: Duration) -> ExponentialBuilder
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) -> ExponentialBuilder
pub fn with_max_times(self, max_times: usize) -> ExponentialBuilder
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
§type Backoff = ExponentialBackoff
type Backoff = ExponentialBackoff
The associated backoff that returned by this builder.
source§fn build(&self) -> <ExponentialBuilder as BackoffBuilder>::Backoff
fn build(&self) -> <ExponentialBuilder as BackoffBuilder>::Backoff
Builder a new backoff via builder.
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
source§impl Default for ExponentialBuilder
impl Default for ExponentialBuilder
source§fn default() -> ExponentialBuilder
fn default() -> ExponentialBuilder
Returns the “default value” for a type. Read more
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
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request