TaskWrapper¶
::: taskito.task.TaskWrapper
Created by @queue.task() — not instantiated directly. Wraps a decorated function to provide task submission methods.
Properties¶
task.name¶
The registered task name. Either the explicit name passed to @queue.task() or the function's qualified name.
Methods¶
task.delay()¶
Enqueue the task for background execution using the decorator's default options. Returns a JobResult handle.
@queue.task(priority=5)
def add(a, b):
return a + b
job = add.delay(2, 3)
print(job.result(timeout=10)) # 5
task.apply_async()¶
task.apply_async(
args: tuple = (),
kwargs: dict | None = None,
priority: int | None = None,
delay: float | None = None,
queue: str | None = None,
max_retries: int | None = None,
timeout: int | None = None,
unique_key: str | None = None,
metadata: str | None = None,
depends_on: str | list[str] | None = None,
) -> JobResult
Enqueue with full control over submission options. Any parameter not provided falls back to the decorator's default.
| Parameter | Type | Default | Description |
|---|---|---|---|
args |
tuple |
() |
Positional arguments for the task |
kwargs |
dict \| None |
None |
Keyword arguments for the task |
priority |
int \| None |
None |
Override priority (higher = more urgent) |
delay |
float \| None |
None |
Delay in seconds before the task is eligible |
queue |
str \| None |
None |
Override queue name |
max_retries |
int \| None |
None |
Override max retry count |
timeout |
int \| None |
None |
Override timeout in seconds |
unique_key |
str \| None |
None |
Deduplicate active jobs with same key |
metadata |
str \| None |
None |
Arbitrary JSON metadata to attach |
depends_on |
str \| list[str] \| None |
None |
Job ID(s) this job depends on. See Dependencies. |
job = send_email.apply_async(
args=("user@example.com", "Hello"),
priority=10,
delay=3600,
queue="emails",
unique_key="welcome-user@example.com",
metadata='{"campaign": "onboarding"}',
)
task.map()¶
Enqueue one job per item in a single batch SQLite transaction. Uses the decorator's default options.
jobs = add.map([(1, 2), (3, 4), (5, 6)])
results = [j.result(timeout=10) for j in jobs]
print(results) # [3, 7, 11]
task.s()¶
Create a mutable Signature. In a chain, the previous task's return value is prepended to args.
task.si()¶
Create an immutable Signature. Ignores the previous task's result — arguments are used as-is.
task()¶
Call the underlying function directly (synchronous, not queued). Useful for testing or when you don't need background execution.