pub struct ElasticObjectPool<T: Poolable> { /* private fields */ }
Expand description
An elastic object pool.
Pools are configured with a minimum and maximum size, and allocate the minimum number of items up front. When an item is requested and the pool is empty, but has not yet reached its maximum size, it will allocate the item on demand.
Periodically, a background task will evaluate the utilization of the pool and shrink the pool size in order to attempt to size it more closely to the recent demand. The frequency of this shrinking, as well as how usage demand is captured and rolled off, is configurable.
§Missing
- Actual configurability around the shrinking frequency and usage demand roll-off.
Implementations§
Source§impl<T> ElasticObjectPool<T>
impl<T> ElasticObjectPool<T>
Source§impl<T> ElasticObjectPool<T>where
T: Poolable + 'static,
impl<T> ElasticObjectPool<T>where
T: Poolable + 'static,
Trait Implementations§
Source§impl<T: Poolable> Clone for ElasticObjectPool<T>
impl<T: Poolable> Clone for ElasticObjectPool<T>
Source§impl<T> ObjectPool for ElasticObjectPool<T>
impl<T> ObjectPool for ElasticObjectPool<T>
Source§type AcquireFuture = ElasticAcquireFuture<T>
type AcquireFuture = ElasticAcquireFuture<T>
Type of future returned by
acquire
.Source§fn acquire(&self) -> Self::AcquireFuture
fn acquire(&self) -> Self::AcquireFuture
Acquires an item from the object pool.
Auto Trait Implementations§
impl<T> Freeze for ElasticObjectPool<T>
impl<T> !RefUnwindSafe for ElasticObjectPool<T>
impl<T> Send for ElasticObjectPool<T>
impl<T> Sync for ElasticObjectPool<T>
impl<T> Unpin for ElasticObjectPool<T>
impl<T> !UnwindSafe for ElasticObjectPool<T>
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> 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::Request
Source§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Track for T
impl<T> Track for T
§fn track_allocations(self, token: AllocationGroupToken) -> Tracked<Self>
fn track_allocations(self, token: AllocationGroupToken) -> Tracked<Self>
Instruments this type by attaching the given allocation group token, returning a
Tracked
wrapper. Read more§fn in_current_allocation_group(self) -> Tracked<Self>
fn in_current_allocation_group(self) -> Tracked<Self>
Instruments this type by attaching the current allocation group, returning a
Tracked
wrapper. Read more