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]
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 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