Classes
RequestQueue
5
▼
Bounded request queue for load shedding.
Queues incoming requests when workers are busy. Returns 5…
RequestQueue
5
▼
Bounded request queue for load shedding.
Queues incoming requests when workers are busy. Returns 503 when queue is full to shed load and prevent resource exhaustion.
Thread-safe for concurrent request handling.
Methods
acquire
0
bool
▼
Try to acquire a slot in the queue.
async
acquire
0
bool
▼
async def acquire(self) -> bool
Returns
bool
True if acquired, False if queue is full
release
0
▼
Release a slot in the queue.
release
0
▼
def release(self) -> None
get_depth
0
int
▼
Get current queue depth.
get_depth
0
int
▼
def get_depth(self) -> int
Returns
int
Number of requests currently queued
get_max_depth
0
int
▼
Get maximum queue depth.
get_max_depth
0
int
▼
def get_max_depth(self) -> int
Returns
int
Maximum queue capacity (0 = unlimited)
Internal Methods 1 ▼
__init__
1
▼
Initialize request queue.
__init__
1
▼
def __init__(self, max_depth: int) -> None
Parameters
| Name | Type | Description |
|---|---|---|
max_depth |
— |
Maximum number of queued requests (0 = unlimited) |
QueueMetrics
4
▼
Metrics for request queue monitoring.
Tracks queue depth, wait times, and rejection rate.
QueueMetrics
4
▼
Metrics for request queue monitoring.
Tracks queue depth, wait times, and rejection rate.
Methods
record_queued
1
▼
Record a queued request.
async
record_queued
1
▼
async def record_queued(self, wait_time_ms: float) -> None
Parameters
| Name | Type | Description |
|---|---|---|
wait_time_ms |
— |
Time spent waiting in queue (milliseconds) |
record_rejected
0
▼
Record a rejected request (queue full).
async
record_rejected
0
▼
async def record_rejected(self) -> None
get_stats
0
dict[str, Any]
▼
Get queue statistics.
get_stats
0
dict[str, Any]
▼
def get_stats(self) -> dict[str, Any]
Returns
dict[str, Any]
Dictionary with queue metrics
Internal Methods 1 ▼
__init__
0
▼
Initialize queue metrics.
__init__
0
▼
def __init__(self) -> None
Functions
create_queue_wrapper
3
Callable
▼
Wrap an ASGI app with request queueing.
Buffers requests when workers are busy…
create_queue_wrapper
3
Callable
▼
def create_queue_wrapper(app: Callable, queue: RequestQueue, metrics: QueueMetrics | None = None) -> Callable
Wrap an ASGI app with request queueing.
Buffers requests when workers are busy. Returns 503 when queue is full.
Parameters
| Name | Type | Description |
|---|---|---|
app |
Callable |
Original ASGI app |
queue |
RequestQueue |
RequestQueue instance |
metrics |
QueueMetrics | None |
Optional QueueMetrics instance for monitoring Default:None
|
Returns
Callable