pub struct Budget { /* private fields */ }
retry
only.Expand description
Represents a “budget” for retrying requests.
This is useful for limiting the amount of retries a service can perform over a period of time, or per a certain number of requests attempted.
Implementations
sourceimpl Budget
impl Budget
sourcepub fn new(ttl: Duration, min_per_sec: u32, retry_percent: f32) -> Self
pub fn new(ttl: Duration, min_per_sec: u32, retry_percent: f32) -> Self
Create a Budget
that allows for a certain percent of the total
requests to be retried.
-
The
ttl
is the duration of how long a singledeposit
should be considered. Must be between 1 and 60 seconds. -
The
min_per_sec
is the minimum rate of retries allowed to accomodate clients that have just started issuing requests, or clients that do not issue many requests per window. -
The
retry_percent
is the percentage of calls todeposit
that can be retried. This is in addition to any retries allowed for viamin_per_sec
. Must be between 0 and 1000.As an example, if
0.1
is used, then for every 10 calls todeposit
, 1 retry will be allowed. If2.0
is used, then everydeposit
allows for 2 retries.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Budget
impl Send for Budget
impl Sync for Budget
impl Unpin for Budget
impl UnwindSafe for Budget
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more