pub enum RetryMode {
None,
Fixed {
retries: usize,
delay: Duration,
},
ExponentialBackoff {
max_retries: usize,
base_delay: Duration,
multiplier: f64,
max_delay: Duration,
jitter: f64,
},
}
Expand description
Retry modes for task execution
Defines different retry strategies that can be used when task execution fails.
Variants§
None
No retries - fail immediately on first error
Fixed
Fixed number of retries with constant delay
§Fields
retries
: Number of retry attemptsdelay
: Fixed delay between attempts
ExponentialBackoff
Exponential backoff with optional jitter
Implements exponential backoff: delay = base_delay * multiplier^attempt + jitter
§Fields
max_retries
: Maximum number of retry attemptsbase_delay
: Initial delay durationmultiplier
: Exponential multiplier (typically 2.0)max_delay
: Maximum delay cap to prevent excessive waitsjitter
: Add randomness to prevent thundering herd (0.0 to 1.0)
Implementations§
Source§impl RetryMode
impl RetryMode
Sourcepub fn fixed(retries: usize, delay: Duration) -> Self
pub fn fixed(retries: usize, delay: Duration) -> Self
Create a fixed retry mode with specified retries and delay
Sourcepub fn exponential(max_retries: usize) -> Self
pub fn exponential(max_retries: usize) -> Self
Create an exponential backoff retry mode with sensible defaults
Uses base_delay=100ms, multiplier=2.0, max_delay=30s, jitter=0.1
Sourcepub fn exponential_custom(
max_retries: usize,
base_delay: Duration,
multiplier: f64,
max_delay: Duration,
jitter: f64,
) -> Self
pub fn exponential_custom( max_retries: usize, base_delay: Duration, multiplier: f64, max_delay: Duration, jitter: f64, ) -> Self
Create a custom exponential backoff retry mode
Sourcepub fn max_attempts(&self) -> usize
pub fn max_attempts(&self) -> usize
Get the maximum number of attempts (initial + retries)
Sourcepub fn delay_for_attempt(&self, attempt: usize) -> Option<Duration>
pub fn delay_for_attempt(&self, attempt: usize) -> Option<Duration>
Calculate delay for a specific attempt number (0-based)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RetryMode
impl RefUnwindSafe for RetryMode
impl Send for RetryMode
impl Sync for RetryMode
impl Unpin for RetryMode
impl UnwindSafe for RetryMode
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