Struct bonsaidb::keystorage::s3::aws_sdk_s3::config::retry::RetryConfig
#[non_exhaustive]pub struct RetryConfig { /* private fields */ }
Expand description
Retry configuration for requests.
Implementations§
§impl RetryConfig
impl RetryConfig
pub fn standard() -> RetryConfig
pub fn standard() -> RetryConfig
Creates a default RetryConfig
with RetryMode::Standard
and max attempts of three.
pub fn adaptive() -> RetryConfig
pub fn adaptive() -> RetryConfig
Creates a default RetryConfig
with RetryMode::Adaptive
and max attempts of three.
pub fn disabled() -> RetryConfig
pub fn disabled() -> RetryConfig
Creates a RetryConfig
that has retries disabled.
pub fn with_retry_mode(self, retry_mode: RetryMode) -> RetryConfig
pub fn with_retry_mode(self, retry_mode: RetryMode) -> RetryConfig
Set this config’s retry mode.
pub fn with_max_attempts(self, max_attempts: u32) -> RetryConfig
pub fn with_max_attempts(self, max_attempts: u32) -> RetryConfig
Set the maximum number of times a request should be tried, including the initial attempt. This value must be greater than zero.
pub fn with_reconnect_mode(self, reconnect_mode: ReconnectMode) -> RetryConfig
pub fn with_reconnect_mode(self, reconnect_mode: ReconnectMode) -> RetryConfig
Set the ReconnectMode
for the retry strategy
By default, when a transient error is encountered, the connection in use will be poisoned. This prevents reusing a connection to a potentially bad host but may increase the load on the server.
This behavior can be disabled by setting ReconnectMode::ReuseAllConnections
instead.
pub fn with_initial_backoff(self, initial_backoff: Duration) -> RetryConfig
pub fn with_initial_backoff(self, initial_backoff: Duration) -> RetryConfig
Set the multiplier used when calculating backoff times as part of an exponential backoff with jitter strategy. Most services should work fine with the default duration of 1 second, but if you find that your requests are taking too long due to excessive retry backoff, try lowering this value.
Example
For a request that gets retried 3 times, when initial_backoff is 1 seconds:
- the first retry will occur after 0 to 1 seconds
- the second retry will occur after 0 to 2 seconds
- the third retry will occur after 0 to 4 seconds
For a request that gets retried 3 times, when initial_backoff is 30 milliseconds:
- the first retry will occur after 0 to 30 milliseconds
- the second retry will occur after 0 to 60 milliseconds
- the third retry will occur after 0 to 120 milliseconds
pub fn reconnect_mode(&self) -> ReconnectMode
pub fn reconnect_mode(&self) -> ReconnectMode
Returns the ReconnectMode
pub fn max_attempts(&self) -> u32
pub fn max_attempts(&self) -> u32
Returns the max attempts.
pub fn initial_backoff(&self) -> Duration
pub fn initial_backoff(&self) -> Duration
Returns the backoff multiplier duration.
pub fn max_backoff(&self) -> Duration
pub fn max_backoff(&self) -> Duration
Returns the max backoff duration.
pub fn use_static_exponential_base(&self) -> bool
pub fn use_static_exponential_base(&self) -> bool
Returns true
if retry strategies should use a static exponential base instead of the
default random base.
To set this value, the test-util
feature must be enabled.
Trait Implementations§
§impl Clone for RetryConfig
impl Clone for RetryConfig
§fn clone(&self) -> RetryConfig
fn clone(&self) -> RetryConfig
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for RetryConfig
impl Debug for RetryConfig
§impl PartialEq for RetryConfig
impl PartialEq for RetryConfig
§fn eq(&self, other: &RetryConfig) -> bool
fn eq(&self, other: &RetryConfig) -> bool
self
and other
values to be equal, and is used
by ==
.§impl Storable for RetryConfig
impl Storable for RetryConfig
§type Storer = StoreReplace<RetryConfig>
type Storer = StoreReplace<RetryConfig>
StoreReplace
] and [StoreAppend
]