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. QueueConfig() starts one fresh queue-worker child for this litestar run invocation and shares a private temporary SQLite file with it. No queue socket or port is exposed, and the temporary queue is removed on normal shutdown; it is not durable across server restarts.

Production boundary

Choose where tasks are stored separately from where they run. For durable deployments 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. The process-local memory backend remains useful for inline tests or an explicitly single-ASGI-process worker. 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.8.0.tar.gz (1.0 MB 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.8.0-py3-none-any.whl (326.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: litestar_queues-0.8.0.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for litestar_queues-0.8.0.tar.gz
Algorithm Hash digest
SHA256 218635d2bdc004fd2204f4c321db8421c64e7761c8379c21d53ea48d832aaeed
MD5 b7aada4a25876a3f43f3524d67809bfe
BLAKE2b-256 b801853197ab1a7d38564d0dfa99f3f63c49102d28fe2f1d67325d6d6996c3f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for litestar_queues-0.8.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.8.0-py3-none-any.whl.

File metadata

  • Download URL: litestar_queues-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 326.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for litestar_queues-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ece402df3f3c100b5115e17d9c2f24d7abe6167a19eee55426d8ea17d47285f
MD5 f8aab22dbcaf9c5d43b0496ff5277ea1
BLAKE2b-256 f943dce5c400e517fc21597082295ec6a968c873a2ae39211251c279ca765996

See more details on using hashes here.

Provenance

The following attestation bundles were made for litestar_queues-0.8.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