pub struct RetryExecutor { /* private fields */ }Expand description
Executes operations with retry logic using exponential backoff.
Implementations§
Source§impl RetryExecutor
impl RetryExecutor
Sourcepub fn new(policy: RetryPolicy) -> Self
pub fn new(policy: RetryPolicy) -> Self
Creates a new executor for policy.
Sourcepub async fn execute<F, Fut, T>(&self, operation: F) -> Result<T>
pub async fn execute<F, Fut, T>(&self, operation: F) -> Result<T>
Executes an async operation with retry logic.
The operation will be retried up to max_attempts times if it fails
with a retryable error (see is_retryable). Delays between retries
follow exponential backoff with optional jitter.
Sourcepub async fn execute_with_delay_hint<F, Fut, T>(
&self,
operation: F,
) -> Result<T>
pub async fn execute_with_delay_hint<F, Fut, T>( &self, operation: F, ) -> Result<T>
Trait Implementations§
Source§impl Clone for RetryExecutor
impl Clone for RetryExecutor
Auto Trait Implementations§
impl Freeze for RetryExecutor
impl RefUnwindSafe for RetryExecutor
impl Send for RetryExecutor
impl Sync for RetryExecutor
impl Unpin for RetryExecutor
impl UnsafeUnpin for RetryExecutor
impl UnwindSafe for RetryExecutor
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more