Database-backed background jobs (a pure-Python port of Rails' Solid Queue). No Redis required — runs on SQLite, PostgreSQL, or MySQL.
Project description
firm-queue
Database-backed background jobs for Python — a pure-Python port of Rails' Solid Queue. No Redis required: jobs live in your existing SQLite, PostgreSQL, or MySQL/MariaDB database.
Part of firm, a port of the Rails 8 Solid stack.
pip install firm-queue
pip install "firm-queue[postgres]" # with the PostgreSQL driver
Quickstart
import firm.queue as bq
bq.configure(database_url="postgresql://localhost/myapp")
@bq.job()
def greet(name):
print(f"hi {name}")
greet.enqueue("Ada")
Then run the workers:
firm-queue start --import myapp.jobs
(Create the schema first with schema.create_all() or the bundled Alembic migrations — see
Getting started.)
Highlights
- Concurrency controls — limit how many jobs with the same key run at once
- Recurring tasks — cron-style schedules, enqueued exactly once per tick
- Retries & failure handling — configurable retry/discard policies with backoff
- Forked or threaded supervisor — with heartbeats and crash recovery
- Flask and FastAPI integrations via
firm-queue[flask]/firm-queue[fastapi]
Docs
MIT licensed. Schema and design derived from Solid Queue (© 37signals, MIT); see NOTICE.
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 firm_queue-0.1.0.tar.gz.
File metadata
- Download URL: firm_queue-0.1.0.tar.gz
- Upload date:
- Size: 29.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","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 |
d37bbfae0afe6789bb4b75cffec3aa5b49b39fa816c1dd33cfec9859aa3eea6a
|
|
| MD5 |
012a3ecac23eeb4d441c0887d203cbff
|
|
| BLAKE2b-256 |
96106251c2b97e6be5cb8e6c98e9f334930e25038e325172292294e2e953bdc5
|
File details
Details for the file firm_queue-0.1.0-py3-none-any.whl.
File metadata
- Download URL: firm_queue-0.1.0-py3-none-any.whl
- Upload date:
- Size: 42.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","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 |
a5ba961a1173f7be4b6d5b85495b3d172e85bcefebe5e4bd8d8273fd58464161
|
|
| MD5 |
a4bc5acc914a038a4f99b088172362aa
|
|
| BLAKE2b-256 |
1aa9f3da7566c3276c39bba9ffef5e4c8104656b013dc31cef9d4c69671981e5
|