Skip to main content

Litestar Queues

PyPI Python License CI Docs

Litestar Queues lets a Litestar application persist work, run it in a worker, and inspect the result. Use it for work that should outlive the request that started it: sending email, importing files, refreshing reports, or calling a slow service.

Quickstart

Install the package:

pip install litestar-queues

Create app.py:

from litestar import Litestar, post
from litestar.di import NamedDependency

from litestar_queues import QueueConfig, QueuePlugin, QueueService, task


@task("accounts.sync", queue="accounts", timeout=30)
async def sync_account(account_id: str) -> dict[str, str]:
    return {"account_id": account_id, "status": "synced"}


@post("/accounts/{account_id:str}/sync")
async def create_sync_job(
    account_id: str,
    queue_service: NamedDependency[QueueService],
) -> dict[str, str]:
    result = await queue_service.enqueue(sync_account, account_id)
    return {"task_id": str(result.id), "status": result.status or "pending"}


app = Litestar(
    route_handlers=[create_sync_job],
    plugins=[QueuePlugin(config=QueueConfig())],
)

Run the application:

LITESTAR_APP=app:app litestar run --reload

Enqueue a task:

curl -X POST http://127.0.0.1:8000/accounts/acct-123/sync

The response contains a task ID and an initial status. The default in-memory queue and in-app worker are ideal for this first run.

Production boundary

Choose where tasks are stored separately from where they run. The default memory backend stores tasks in one Python process. If the web app and worker run in separate processes, use a shared backend such as SQLSpec, Advanced Alchemy, Redis, or Valkey. Use standalone workers when the web app and task workers must scale separately. Cloud Run runs tasks; it does not store them.

Next steps

Litestar Queues supports Python 3.10 through 3.14 and is licensed under MIT.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

litestar_queues-0.3.0.tar.gz (668.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

litestar_queues-0.3.0-py3-none-any.whl (193.5 kB view details)

Uploaded Python 3

File details

Details for the file litestar_queues-0.3.0.tar.gz.

File metadata

  • Download URL: litestar_queues-0.3.0.tar.gz
  • Upload date:
  • Size: 668.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for litestar_queues-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a16cea76483e461dca52ba7edabd25d6b2ced9376d5a8fdb9642935af10ccc10
MD5 d8ccb6b6ae4eb4dd2feb8510428280e9
BLAKE2b-256 39df0869d07bf258a0c22989965f2c5acf64ff9c460f17f0270038351558ed84

See more details on using hashes here.

Provenance

The following attestation bundles were made for litestar_queues-0.3.0.tar.gz:

Publisher: publish.yml on cofin/litestar-queues

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file litestar_queues-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: litestar_queues-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 193.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for litestar_queues-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 30f1106c38d61f6a5c67c5e1964175958de70b1b02ad3c33c10f8e4f618a3b0d
MD5 6662b2401b1976442a9b01ebb86dff57
BLAKE2b-256 c1b219b2c0dd16672899460460d364305d0b977e4343017a915ce979144b8c7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for litestar_queues-0.3.0-py3-none-any.whl:

Publisher: publish.yml on cofin/litestar-queues

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page