Durable local queues for Python, with persistent retry state powered by Tenacity.
Project description
localqueue
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]"
Running with Docker
The image is also published on GitHub Container Registry:
docker pull ghcr.io/brunoportis/localqueue:latest
docker run --rm ghcr.io/brunoportis/localqueue:latest --help
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file localqueue-0.3.3.tar.gz.
File metadata
- Download URL: localqueue-0.3.3.tar.gz
- Upload date:
- Size: 126.5 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c93c13e6be8b48812b910fc28017647cae48444e3ed7814a1b4800c83cfd5a63
|
|
| MD5 |
5bf37c2e334e3b6831f2b85cf666afce
|
|
| BLAKE2b-256 |
1f949cade6434f5394dce21b4549516c95df786f43a0e1e9cc177c5424873f64
|
File details
Details for the file localqueue-0.3.3-py3-none-any.whl.
File metadata
- Download URL: localqueue-0.3.3-py3-none-any.whl
- Upload date:
- Size: 49.3 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b9f8d47d685368782ae8964245016317128aee2079fea9430c0cb893464d560
|
|
| MD5 |
16f6e142d8af72646aa93e17e52120ad
|
|
| BLAKE2b-256 |
dae6cceae1702a0140b24419328dc597755fa6e9fd9b9a9956cb2df3f81f2fa2
|