Expand description
Quality of Service (QoS) for priority-based request handling.
This module provides priority-based scheduling, bandwidth allocation, and SLA tracking for content distribution requests. It ensures high-priority requests get preferential treatment while maintaining fairness across different priority levels.
§Example
use chie_core::qos::{QosManager, Priority, QosConfig, RequestInfo};
#[tokio::main]
async fn main() {
let config = QosConfig::default();
let mut qos = QosManager::new(config);
// Enqueue requests with different priorities
let req1 = RequestInfo {
id: "req1".to_string(),
cid: "QmCritical".to_string(),
size_bytes: 1024 * 1024,
priority: Priority::Critical,
};
qos.enqueue(req1).await;
// Dequeue processes highest priority first
if let Some(next) = qos.dequeue().await {
println!("Processing: {} (priority: {:?})", next.id, next.priority);
}
}Structs§
- QosConfig
- Configuration for QoS manager.
- QosManager
- Quality of Service manager for priority-based request handling.
- Request
Info - Information about a queued request.
- SlaMetrics
- SLA metrics for a priority level.
Enums§
- Priority
- Request priority levels.