Skip to main content

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

Project description

localqueue

Tests CodeQL PyPI version 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

To run the CLI in a clean container:

docker run --rm ghcr.io/brunoportis/localqueue:latest --help
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.2.tar.gz (120.6 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.2-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: localqueue-0.3.2.tar.gz
  • Upload date:
  • Size: 120.6 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.2.tar.gz
Algorithm Hash digest
SHA256 54e8f920ac25c9d0da13ad890ddccf6eaf94898b5b881638a213cec952300a86
MD5 5036483e632a4bf902cd3e2d8b71299e
BLAKE2b-256 63f887ea0effab802410aba10640a5f08d428d150faff8420f2439a46d39d3d4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: localqueue-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 36.6 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a8496d74b54ebac8776eb9f72afbe2c2bf8fcae6b48ac329176d88291c0561d0
MD5 abec76680552e84b1655441722941112
BLAKE2b-256 0a6d78a7f8205043e6620697c6e79dd3f1cfa38a94a75b4b2cfae975035f680a

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