#[non_exhaustive]pub struct RetryConfig {
pub max_attempts: u32,
pub initial_backoff: Duration,
pub max_backoff: Duration,
pub attempt_timeout: Option<Duration>,
}Expand description
Retry policy for unary calls.
Start from RetryConfig::default and adjust with the fluent setters;
#[non_exhaustive] so fields can be added without a breaking change.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.max_attempts: u32Maximum number of attempts (including the first). 1 disables retrying.
initial_backoff: DurationBackoff before the first retry.
max_backoff: DurationUpper bound the backoff doubles towards.
attempt_timeout: Option<Duration>Optional per-attempt timeout. When set, an attempt that exceeds it is cancelled and treated as a retriable timeout (bounding a hung call independently of the channel-level timeout).
Implementations§
Source§impl RetryConfig
impl RetryConfig
Sourcepub fn with_max_attempts(self, max_attempts: u32) -> RetryConfig
pub fn with_max_attempts(self, max_attempts: u32) -> RetryConfig
Set the maximum number of attempts (including the first).
Sourcepub fn with_initial_backoff(self, initial_backoff: Duration) -> RetryConfig
pub fn with_initial_backoff(self, initial_backoff: Duration) -> RetryConfig
Set the initial backoff before the first retry.
Sourcepub fn with_max_backoff(self, max_backoff: Duration) -> RetryConfig
pub fn with_max_backoff(self, max_backoff: Duration) -> RetryConfig
Set the ceiling the backoff doubles towards.
Sourcepub fn with_attempt_timeout(self, attempt_timeout: Duration) -> RetryConfig
pub fn with_attempt_timeout(self, attempt_timeout: Duration) -> RetryConfig
Set a per-attempt timeout: an attempt exceeding it is cancelled and retried (as a timeout) rather than blocking on the channel-level timeout.
Trait Implementations§
Source§impl Clone for RetryConfig
impl Clone for RetryConfig
Source§fn clone(&self) -> RetryConfig
fn clone(&self) -> RetryConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RetryConfig
impl Debug for RetryConfig
Source§impl Default for RetryConfig
impl Default for RetryConfig
Source§fn default() -> RetryConfig
fn default() -> 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 UnsafeUnpin for RetryConfig
impl UnwindSafe for RetryConfig
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
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>
T in a tonic::Request