Struct reqwest_retry::RetryTransientMiddleware
source · [−]pub struct RetryTransientMiddleware<T: RetryPolicy + Send + Sync + 'static> { /* private fields */ }
Expand description
RetryTransientMiddleware
offers retry logic for requests that fail in a transient manner
and can be safely executed again.
Currently, it allows setting a RetryPolicy algorithm for calculating the wait_time between each request retry.
use reqwest_middleware::ClientBuilder;
use reqwest_retry::{RetryTransientMiddleware, policies::ExponentialBackoff};
use reqwest::Client;
// We create a ExponentialBackoff retry policy which implements `RetryPolicy`.
let retry_policy = ExponentialBackoff {
/// How many times the policy will tell the middleware to retry the request.
max_n_retries: 3,
max_retry_interval: std::time::Duration::from_millis(30),
min_retry_interval: std::time::Duration::from_millis(100),
backoff_exponent: 2,
};
let retry_transient_middleware = RetryTransientMiddleware::new_with_policy(retry_policy);
let client = ClientBuilder::new(Client::new()).with(retry_transient_middleware).build();
Implementations
sourceimpl<T: RetryPolicy + Send + Sync> RetryTransientMiddleware<T>
impl<T: RetryPolicy + Send + Sync> RetryTransientMiddleware<T>
sourcepub fn new_with_policy(retry_policy: T) -> Self
pub fn new_with_policy(retry_policy: T) -> Self
Construct RetryTransientMiddleware
with a retry_policy.
Trait Implementations
sourceimpl<T: RetryPolicy + Send + Sync> Middleware for RetryTransientMiddleware<T>
impl<T: RetryPolicy + Send + Sync> Middleware for RetryTransientMiddleware<T>
sourcefn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: Request,
extensions: &'life1 mut Extensions,
next: Next<'life2>
) -> Pin<Box<dyn Future<Output = Result<Response>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: Request,
extensions: &'life1 mut Extensions,
next: Next<'life2>
) -> Pin<Box<dyn Future<Output = Result<Response>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Invoked with a request before sending it. If you want to continue processing the request,
you should explicitly call next.run(req, extensions)
. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for RetryTransientMiddleware<T> where
T: RefUnwindSafe,
impl<T> Send for RetryTransientMiddleware<T>
impl<T> Sync for RetryTransientMiddleware<T>
impl<T> Unpin for RetryTransientMiddleware<T> where
T: Unpin,
impl<T> UnwindSafe for RetryTransientMiddleware<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more