saluki_io/net/util/retry/
mod.rs

1mod backoff;
2pub use self::backoff::ExponentialBackoff;
3
4mod classifier;
5pub use self::classifier::{RetryClassifier, StandardHttpClassifier};
6
7mod lifecycle;
8pub use self::lifecycle::StandardHttpRetryLifecycle;
9
10mod policy;
11pub use self::policy::{NoopRetryPolicy, RollingExponentialBackoffRetryPolicy};
12
13mod queue;
14pub use self::queue::{DiskUsageRetrieverImpl, EventContainer, PushResult, RetryQueue, Retryable};
15
16/// A batteries-included retry policy suitable for HTTP-based clients.
17pub type DefaultHttpRetryPolicy =
18    RollingExponentialBackoffRetryPolicy<StandardHttpClassifier, StandardHttpRetryLifecycle>;
19
20impl DefaultHttpRetryPolicy {
21    /// Creates a new retry policy adapted to HTTP-based clients with the given exponential backoff strategy.
22    ///
23    /// This policy uses the standard HTTP classifier ([`StandardHttpClassifier`]) and retry lifecycle ([`StandardHttpRetryLifecycle`]).
24    pub fn with_backoff(backoff: ExponentialBackoff) -> Self {
25        RollingExponentialBackoffRetryPolicy::new(StandardHttpClassifier, backoff)
26            .with_retry_lifecycle(StandardHttpRetryLifecycle)
27    }
28}