Skip to main content

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


Download files

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

Source Distribution

firm_queue-0.1.0.tar.gz (29.1 kB view details)

Uploaded Source

Built Distribution

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

firm_queue-0.1.0-py3-none-any.whl (42.7 kB view details)

Uploaded Python 3

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

Hashes for firm_queue-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d37bbfae0afe6789bb4b75cffec3aa5b49b39fa816c1dd33cfec9859aa3eea6a
MD5 012a3ecac23eeb4d441c0887d203cbff
BLAKE2b-256 96106251c2b97e6be5cb8e6c98e9f334930e25038e325172292294e2e953bdc5

See more details on using hashes here.

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

Hashes for firm_queue-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a5ba961a1173f7be4b6d5b85495b3d172e85bcefebe5e4bd8d8273fd58464161
MD5 a4bc5acc914a038a4f99b088172362aa
BLAKE2b-256 1aa9f3da7566c3276c39bba9ffef5e4c8104656b013dc31cef9d4c69671981e5

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