mirror of
https://github.com/Ichinga-Samuel/aiomql.git
synced 2026-07-28 04:37:43 +00:00
2.3 KiB
2.3 KiB
task_queue
aiomql.core.task_queue — Async priority task queue for managing concurrent execution.
Overview
Provides QueueItem (a callable wrapper) and TaskQueue (an asyncio.PriorityQueue-based
executor). Supports priority-based scheduling, dynamic worker scaling, timeout handling, and
both finite (run until empty) and infinite (run until stopped) modes.
Classes
QueueItem
Wraps a callable or coroutine for deferred, priority-aware execution.
| Attribute | Type | Description |
|---|---|---|
task |
Callable | Coroutine |
The wrapped callable |
args |
tuple |
Positional arguments |
kwargs |
dict |
Keyword arguments |
time |
float |
Creation timestamp (used for ordering) |
__call__()
Executes the task. Coroutine functions are awaited directly; regular callables are run
in a thread executor. Handles asyncio.CancelledError.
Comparison operators (<, <=, ==) are based on creation time.
TaskQueue
Priority-based async task queue with worker management.
| Parameter | Type | Default | Description |
|---|---|---|---|
size |
int |
0 |
Max queue size (0 = unlimited) |
max_workers |
int | None |
None |
Max concurrent workers |
queue_timeout |
int | None |
None |
Overall timeout in seconds |
on_exit |
Literal["cancel","complete_priority"] |
"complete_priority" |
Shutdown behaviour |
mode |
Literal["finite","infinite"] |
"finite" |
Queue mode |
Task Management
| Method | Description |
|---|---|
add_task(task, *args, must_complete=False, priority=3, **kwargs) |
Wraps and enqueues a task |
add(*, item, priority=3, must_complete=False, with_new_workers=True) |
Enqueues a QueueItem |
Worker Management
| Method | Description |
|---|---|
add_workers(no_of_workers=None) |
Creates worker coroutines |
remove_worker(wid) |
Removes a specific worker |
cancel_all_workers() |
Cancels all workers |
cancel() |
Cancels workers and stops the queue |
Execution
| Method | Description |
|---|---|
run(queue_timeout=None) |
Starts workers and processes the queue |
worker(wid=None) |
Internal worker coroutine |
check_timeout() |
Checks and enforces queue timeout |