Struct tower::retry::budget::Budget [−][src]
pub struct Budget { /* fields omitted */ }
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
impl Budget
[src]
impl Budget
[src]pub fn new(ttl: Duration, min_per_sec: u32, retry_percent: f32) -> Self
[src]
pub fn new(ttl: Duration, min_per_sec: u32, retry_percent: f32) -> Self
[src]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
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Instrument for T
[src]
impl<T> Instrument for T
[src]fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
fn in_current_span(self) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,