Skip to main content

RetryConfig

Struct RetryConfig 

Source
pub struct RetryConfig { /* private fields */ }
Expand description

Canonical retry configuration for messaging middleware.

Messaging retries historically retried every handler failure by default. RetryPolicy defaults to retrying only errors marked retryable, so this wrapper encodes the messaging-specific always-retry default explicitly.

Implementations§

Source§

impl RetryConfig

Source

pub fn new() -> Self

Create a retry config with messaging defaults.

Source

pub const fn from_policy(policy: RetryPolicy) -> Self

Wrap an explicit resilience retry policy.

Source

pub fn with_max_attempts(self, n: usize) -> Self

Set the maximum number of attempts (including the first call).

Source

pub fn with_initial_backoff(self, d: Duration) -> Self

Set the initial backoff delay before the first retry.

Source

pub fn with_max_backoff(self, d: Duration) -> Self

Set the upper bound on any single backoff delay.

Source

pub fn with_backoff_factor(self, factor: f64) -> Self

Set the exponential backoff multiplication factor.

Source

pub fn with_constant_backoff(self, backoff: ConstantBackoff) -> Self

Use a fixed delay for every retry attempt.

Source

pub fn with_linear_backoff(self, backoff: LinearBackoff) -> Self

Use a linearly increasing retry delay.

Source

pub fn with_jitter(self, enabled: bool) -> Self

Enable or disable retry jitter.

Source

pub fn with_retry_if( self, f: impl Fn(&AppError) -> bool + Send + Sync + 'static, ) -> Self

Override the predicate used to decide whether an error is retried.

Source

pub fn with_on_retry( self, f: impl Fn(u32, &AppError) + Send + Sync + 'static, ) -> Self

Register a callback called after each failed attempt before the next backoff sleep.

Source

pub const fn policy(&self) -> &RetryPolicy

Borrow the underlying resilience policy.

Source

pub fn into_policy(self) -> RetryPolicy

Convert into the underlying resilience policy.

Trait Implementations§

Source§

impl Clone for RetryConfig

Source§

fn clone(&self) -> RetryConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RetryConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for RetryConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl From<RetryPolicy> for RetryConfig

Source§

fn from(policy: RetryPolicy) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more