pub struct AdmissionController { /* private fields */ }Expand description
AIMD adaptive concurrency controller.
Implementations§
Source§impl AdmissionController
impl AdmissionController
Sourcepub fn new(config: AdmissionConfig) -> Arc<Self> ⓘ
pub fn new(config: AdmissionConfig) -> Arc<Self> ⓘ
Create a new controller with the given configuration.
Sourcepub fn try_acquire(self: &Arc<Self>) -> Option<AcquireGuard>
pub fn try_acquire(self: &Arc<Self>) -> Option<AcquireGuard>
Try to acquire a slot.
Returns None if in_flight >= limit, otherwise returns an
AcquireGuard that decrements in_flight on drop.
Sourcepub fn on_success(&self)
pub fn on_success(&self)
Additive increase: grow the limit by additive_increase, up to
max_limit.
Sourcepub fn on_overload(&self)
pub fn on_overload(&self)
Multiplicative decrease: shrink the limit by multiplicative_decrease,
floored at min_limit.
Sourcepub fn stats(&self) -> AdmissionStats
pub fn stats(&self) -> AdmissionStats
Return a snapshot of current admission statistics.
Sourcepub fn current_limit(&self) -> usize
pub fn current_limit(&self) -> usize
Current adaptive concurrency limit.
Auto Trait Implementations§
impl !Freeze for AdmissionController
impl RefUnwindSafe for AdmissionController
impl Send for AdmissionController
impl Sync for AdmissionController
impl Unpin for AdmissionController
impl UnsafeUnpin for AdmissionController
impl UnwindSafe for AdmissionController
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request