pub struct ConcurrencyLimit { /* private fields */ }Expand description
Sheds excess load instead of queueing requests when all execution slots are busy.
Implementations§
Source§impl ConcurrencyLimit
impl ConcurrencyLimit
pub fn new(max_concurrent_requests: usize) -> Self
Sourcepub fn with_priority_reserve(self, capacity: usize) -> Self
pub fn with_priority_reserve(self, capacity: usize) -> Self
Sets the additional capacity reserved exclusively for priority routes.
pub fn with_metrics(self, metrics: HttpMetrics) -> Self
Trait Implementations§
Source§impl Clone for ConcurrencyLimit
impl Clone for ConcurrencyLimit
Source§impl<S, B> Transform<S, ServiceRequest> for ConcurrencyLimitwhere
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
B: MessageBody + 'static,
impl<S, B> Transform<S, ServiceRequest> for ConcurrencyLimitwhere
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
B: MessageBody + 'static,
Source§type Response = ServiceResponse<EitherBody<B>>
type Response = ServiceResponse<EitherBody<B>>
Responses produced by the service.
Source§type Transform = ConcurrencyLimitMiddleware<S>
type Transform = ConcurrencyLimitMiddleware<S>
The
TransformService value created by this factorySource§type Future = Ready<Result<<ConcurrencyLimit as Transform<S, ServiceRequest>>::Transform, <ConcurrencyLimit as Transform<S, ServiceRequest>>::InitError>>
type Future = Ready<Result<<ConcurrencyLimit as Transform<S, ServiceRequest>>::Transform, <ConcurrencyLimit as Transform<S, ServiceRequest>>::InitError>>
The future response value.
Source§fn new_transform(&self, service: S) -> Self::Future
fn new_transform(&self, service: S) -> Self::Future
Creates and returns a new Transform component, asynchronously
Auto Trait Implementations§
impl !RefUnwindSafe for ConcurrencyLimit
impl !UnwindSafe for ConcurrencyLimit
impl Freeze for ConcurrencyLimit
impl Send for ConcurrencyLimit
impl Sync for ConcurrencyLimit
impl Unpin for ConcurrencyLimit
impl UnsafeUnpin for ConcurrencyLimit
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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::RequestSource§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