Skip to main content

Durable local queues for Python, with persistent retry state powered by Tenacity.

Project description

localqueue

Tests CodeQL Coverage

localqueue is a small durable queue for one machine. It stores work on the local filesystem by default and keeps retry state with Tenacity.

Use it for scripts, CLI tools, cron jobs, and small Python workers that share one local store. Use localqueue.retry when another system already delivers work and you only need retry state that survives restarts.

localqueue queue exec emails -- python scripts/send_email.py
from localqueue import PersistentQueue, persistent_worker

queue = PersistentQueue("emails")
queue.put({"to": "user@example.com"})

@persistent_worker(queue)
def send_email(job: dict[str, str]) -> None:
    deliver(job["to"])

Full docs live at brunoportis.github.io/localqueue. The source docs are in docs/.

Install

pip install localqueue

For the CLI:

pip install "localqueue[cli]"

For the optional LMDB backend:

pip install "localqueue[lmdb]"

When not to use

localqueue is not a distributed broker. If you need multi-host coordination, high write concurrency, managed retention, or strict cross-service ordering, use a system designed for that operating model.

Project details


Download files

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

Source Distribution

localqueue-0.3.0.tar.gz (104.3 kB view details)

Uploaded Source

Built Distribution

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

localqueue-0.3.0-py3-none-any.whl (33.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: localqueue-0.3.0.tar.gz
  • Upload date:
  • Size: 104.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for localqueue-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9aa47c5dd0f7dfc1262e6df7b5a3536717897ecd47afd443fa182a76ce2b84e7
MD5 eda8d9b5b904c5bb523f63615de4eeac
BLAKE2b-256 9c3821a0a90c27199c0bd2ad950b8906724809b65c7c15dde90c48d80c648e6e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: localqueue-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 33.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for localqueue-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 41dab8c026dc631303104a10fe333ef31de8e3e59a7622d3ab34bb89e53df7e3
MD5 8247610bec54337c37ffc86a8ce85914
BLAKE2b-256 1c33d5bfd6343feeaf5e6c50dd866a71609ce7b251a0e3c3306ffa25d11c795b

See more details on using hashes here.

Supported by

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