API
Enqueue
Typed enqueue results and 0.1 uniqueness.
Every enqueue returns a structured EnqueueResult. Never infer success from a missing id.
Statuses (0.1)
| Status | Meaning |
|---|---|
created | New row inserted (created=True) |
existed | Active (queue, idempotency_key) already present (created=False) |
result = await tq.enqueue(
DOUBLE,
{"value": 3},
idempotency_key="demo:3",
)
assert result.status in {"created", "existed"}
Uniqueness in 0.1
Reject-only on active (queue, idempotency_key). Duplicate key → existed.
Modes such as replace, preserve_run_at, and statuses like replaced / skipped_locked / conflict are 0.2+ design — not on the current wire surface.
concurrency_key is separate: it caps parallel runners; it is not an enqueue identity key.
Options
TaskQ.enqueue accepts optional scheduled_at, priority, lease_seconds, concurrency_key, affinity_key, retry overrides, headers, and a transactional session or connection.
Also available: enqueue_many (one result per input, in order) and enqueue_raw (requires validate_job_types=False).