pub struct RetryPolicy {
pub max_retries: u32,
pub initial_delay: Duration,
pub max_delay: Duration,
pub backoff_multiplier: f64,
pub jitter: f64,
pub retry_queue_pattern: String,
pub dead_letter_exchange: Option<String>,
pub dead_letter_queue: Option<String>,
}Expand description
Retry policy configuration
Fields§
§max_retries: u32Maximum number of retry attempts
initial_delay: DurationInitial delay between retries
max_delay: DurationMaximum delay between retries
backoff_multiplier: f64Multiplier for exponential backoff
jitter: f64Jitter factor (0.0 to 1.0) to add randomness to delays
retry_queue_pattern: StringRetry queue naming pattern
dead_letter_exchange: Option<String>Dead letter exchange for failed messages
dead_letter_queue: Option<String>Dead letter queue for failed messages
Implementations§
Source§impl RetryPolicy
impl RetryPolicy
Sourcepub fn calculate_delay(&self, attempt: u32) -> Duration
pub fn calculate_delay(&self, attempt: u32) -> Duration
Calculate delay for a specific retry attempt
Sourcepub fn get_retry_queue_name(&self, original_queue: &str, attempt: u32) -> String
pub fn get_retry_queue_name(&self, original_queue: &str, attempt: u32) -> String
Generate retry queue name for a specific attempt
Sourcepub fn fast_for_queue<S: Into<String>>(queue_name: S) -> Self
pub fn fast_for_queue<S: Into<String>>(queue_name: S) -> Self
Create a fast retry policy with custom dead letter names based on queue
Sourcepub fn slow_for_queue<S: Into<String>>(queue_name: S) -> Self
pub fn slow_for_queue<S: Into<String>>(queue_name: S) -> Self
Create a slow retry policy with custom dead letter names based on queue
Sourcepub fn aggressive() -> Self
pub fn aggressive() -> Self
Create an aggressive retry policy (many attempts with exponential backoff)
Sourcepub fn conservative() -> Self
pub fn conservative() -> Self
Create a conservative retry policy (few attempts, larger delays)
Sourcepub fn linear(delay: Duration, max_retries: u32) -> Self
pub fn linear(delay: Duration, max_retries: u32) -> Self
Create a linear retry policy (fixed delay between retries)
Sourcepub fn minutes_exponential() -> Self
pub fn minutes_exponential() -> Self
Create a minutes-based exponential retry policy (1min, 2min, 4min, 8min, 16min)
Sourcepub fn minutes_exponential_for_queue<S: Into<String>>(queue_name: S) -> Self
pub fn minutes_exponential_for_queue<S: Into<String>>(queue_name: S) -> Self
Create a minutes-based exponential retry policy with custom dead letter names
Sourcepub fn builder() -> RetryPolicyBuilder
pub fn builder() -> RetryPolicyBuilder
Create a custom retry policy with builder pattern
Trait Implementations§
Source§impl Clone for RetryPolicy
impl Clone for RetryPolicy
Source§fn clone(&self) -> RetryPolicy
fn clone(&self) -> RetryPolicy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more