Skip to main content

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.

Metadata

Release files for firm-queue 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for firm-queue 1.0.0
File Size Uploaded
firm_queue-1.0.0.tar.gz 31.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for firm-queue 1.0.0
File Interpreter ABI Platform
firm_queue-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 76.4 kB

Release files / firm_queue-1.0.0.tar.gz

Download URL firm_queue-1.0.0.tar.gz
Size 31.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3914345b7f8b3baae60c7ffc0b376f72536fd4d57ce5ca426006221295c535f4
BLAKE2b-256 checksum
How to use checksums
9ff9952e29e52f85149c4be77f10e4f05fd757f23ef55be5dbe5d8304d0091ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}

Release files / firm_queue-1.0.0-py3-none-any.whl

Download URL firm_queue-1.0.0-py3-none-any.whl
Size 44.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c3692d5db57c84ea01445a9f67b6b5cf05f4879842f31efb948f9c35af397980
BLAKE2b-256 checksum
How to use checksums
cdc8bf91d42068a48fd6428eeffcb0763af6bc1f324d50225e69c9a6d75c835f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page