pub struct ResourceManager {
pub backpressure: Arc<BackpressureState>,
/* private fields */
}Expand description
Global resource manager for the runtime.
Tracks all modules and clients, calculates backpressure, and enforces quotas.
Fields§
§backpressure: Arc<BackpressureState>Global backpressure state.
Implementations§
Source§impl ResourceManager
impl ResourceManager
Sourcepub fn with_default_quota(quota: ModuleQuota) -> Self
pub fn with_default_quota(quota: ModuleQuota) -> Self
Creates a resource manager with custom default quota.
Sourcepub fn get_or_create_module(&self, module_name: &str) -> Arc<ModuleResources>
pub fn get_or_create_module(&self, module_name: &str) -> Arc<ModuleResources>
Gets or creates a module resource tracker.
Sourcepub fn register_module(&self, module_name: &str, quota: ModuleQuota)
pub fn register_module(&self, module_name: &str, quota: ModuleQuota)
Registers a module with a custom quota.
Sourcepub fn can_admit_request(&self, module_name: &str) -> bool
pub fn can_admit_request(&self, module_name: &str) -> bool
Checks if a request can be admitted.
Sourcepub fn record_request_start(&self, module_name: &str) -> bool
pub fn record_request_start(&self, module_name: &str) -> bool
Records a request start.
Sourcepub fn record_request_end(&self, module_name: &str)
pub fn record_request_end(&self, module_name: &str)
Records a request completion.
Sourcepub fn update_backpressure(&self)
pub fn update_backpressure(&self)
Calculates and updates global backpressure.
This should be called periodically (e.g., every 100ms).
Sourcepub fn client_connected(&self)
pub fn client_connected(&self)
Increments the active client count.
Sourcepub fn client_disconnected(&self)
pub fn client_disconnected(&self)
Decrements the active client count.
Sourcepub fn stats(&self) -> ResourceManagerStats
pub fn stats(&self) -> ResourceManagerStats
Returns statistics about the resource manager.
Sourcepub fn spawn_background_task(&self) -> JoinHandle<()>
pub fn spawn_background_task(&self) -> JoinHandle<()>
Starts a background task that periodically resets counters and updates backpressure.
Trait Implementations§
Source§impl Debug for ResourceManager
impl Debug for ResourceManager
Auto Trait Implementations§
impl Freeze for ResourceManager
impl !RefUnwindSafe for ResourceManager
impl Send for ResourceManager
impl Sync for ResourceManager
impl Unpin for ResourceManager
impl UnsafeUnpin for ResourceManager
impl UnwindSafe for ResourceManager
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