pub struct RetryConfig {
pub max_retries: u32,
pub initial_interval: Duration,
pub max_interval: Duration,
pub multiplier: f64,
pub randomization_factor: f64,
pub max_elapsed_time: Option<Duration>,
}Available on crate feature
resilience only.Expand description
Configuration for retry behavior.
Fields§
§max_retries: u32Maximum number of retry attempts (0 = no retries, just the initial attempt).
initial_interval: DurationInitial interval between retries.
max_interval: DurationMaximum interval between retries.
multiplier: f64Multiplier for exponential backoff.
randomization_factor: f64Randomization factor for jitter (0.0 = no jitter, 0.5 = +/- 50%).
max_elapsed_time: Option<Duration>Maximum total elapsed time for all retries. None = no limit.
Implementations§
Source§impl RetryConfig
impl RetryConfig
Sourcepub fn with_initial_interval(self, interval: Duration) -> Self
pub fn with_initial_interval(self, interval: Duration) -> Self
Set the initial interval.
Sourcepub fn with_max_interval(self, interval: Duration) -> Self
pub fn with_max_interval(self, interval: Duration) -> Self
Set the maximum interval.
Sourcepub fn with_multiplier(self, multiplier: f64) -> Self
pub fn with_multiplier(self, multiplier: f64) -> Self
Set the backoff multiplier.
Sourcepub fn with_randomization_factor(self, factor: f64) -> Self
pub fn with_randomization_factor(self, factor: f64) -> Self
Set the randomization factor for jitter.
Sourcepub fn with_max_elapsed_time(self, time: Option<Duration>) -> Self
pub fn with_max_elapsed_time(self, time: Option<Duration>) -> Self
Set the maximum elapsed time.
Sourcepub fn calculate_interval(&self, attempt: u32) -> Duration
pub fn calculate_interval(&self, attempt: u32) -> Duration
Calculate the next backoff interval with jitter.
Trait Implementations§
Source§impl Clone for RetryConfig
impl Clone for RetryConfig
Source§fn clone(&self) -> RetryConfig
fn clone(&self) -> RetryConfig
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RetryConfig
impl Debug for RetryConfig
Auto Trait Implementations§
impl Freeze for RetryConfig
impl RefUnwindSafe for RetryConfig
impl Send for RetryConfig
impl Sync for RetryConfig
impl Unpin for RetryConfig
impl UnwindSafe for RetryConfig
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§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::RequestSource§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