pub struct RetryConfig {
pub max_attempts: u32,
pub initial_delay: Duration,
pub max_delay: Duration,
pub multiplier: f64,
pub max_duration: Duration,
pub jitter: bool,
}Expand description
Configuration for retry logic
Defines the parameters for exponential backoff retry behavior when connecting to PostgreSQL or recovering from transient failures.
§Example
use pg_walstream::RetryConfig;
use std::time::Duration;
// Use default configuration (5 attempts, 1s to 60s delays)
let config = RetryConfig::default();
// Or create custom configuration
let custom_config = RetryConfig {
max_attempts: 10,
initial_delay: Duration::from_millis(500),
max_delay: Duration::from_secs(30),
multiplier: 2.0,
max_duration: Duration::from_secs(600),
jitter: true,
};Fields§
§max_attempts: u32Maximum number of retry attempts before giving up
initial_delay: DurationInitial delay before the first retry
max_delay: DurationMaximum delay between retries (caps exponential growth)
multiplier: f64Multiplier for exponential backoff (typically 2.0)
max_duration: DurationMaximum total duration for all retry attempts
jitter: boolWhether to add random jitter to delays (reduces thundering herd)
Implementations§
Source§impl RetryConfig
impl RetryConfig
Sourcepub fn to_backoff(&self) -> ExponentialBackoff
pub fn to_backoff(&self) -> ExponentialBackoff
Create an exponential backoff policy from retry configuration
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 · Source§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
Source§impl Default for RetryConfig
impl Default for RetryConfig
Source§fn default() -> RetryConfig
fn default() -> RetryConfig
Returns the “default value” for a type. Read more
impl Copy 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§
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