Skip to content

Add pgqueuer - #3360

Open
janbjorge wants to merge 1 commit into
vinta:masterfrom
janbjorge:add-pgqueuer
Open

janbjorge wants to merge 1 commit into
vinta:masterfrom
janbjorge:add-pgqueuer

Conversation

@janbjorge

@janbjorge janbjorge commented Sep 29, 2026 •

Copy link
Copy Markdown

Project

pgqueuer

Checklist

  • I read CONTRIBUTING.md - awesome-python is a shortlist, not a catalog
  • One project per PR
  • PR title format: Add project-name
  • Entry format: - [pypi-name](https://github.com/owner/repo) - Description ending with period.
  • Display name is the PyPI package name
  • Placed in an existing use case (new sections and subcategories are maintainer-only)
  • Meets all Quality Requirements: active, stable, documented, at least 1 month old

Which Tier

Pick one:

  • Obvious choice - a tool an experienced Python developer would name when asked "what do I use for this?"
  • Challenger - not yet the obvious choice, but a credible successor to one. Give adoption-trajectory evidence, not popularity alone.

Explain:

Challenger, on the asyncio seat. pgqueuer is a PostgreSQL-backed job queue: an enqueue commits in the same transaction as the data it belongs to, workers claim with FOR UPDATE SKIP LOCKED, and LISTEN/NOTIFY wakes them. Cron-style schedules run in the same process. PyPI name pgqueuer, Production/Stable, public since April 2024, docs at https://janbjorge.github.io/pgqueuer/. I maintain it.

Adoption, from pypistats overall downloads without mirrors:

Month pgqueuer taskiq
2026-04 137,543 1,135,710
2026-05 150,407 1,209,910
2026-06 191,143 1,437,313
2026-07 258,389 1,818,965
2026-08 354,369 1,958,582
2026-09 (through the 29th) 459,289 1,911,796

Rolling last 30 days (/recent): pgqueuer 482,135, taskiq 2,012,170, huey 14,082,843. pgqueuer has about tripled since April and is still about a quarter of taskiq. It is placed last in the challenger tier, after huey, which is the download order.

Displacement

Task Queues is at its cap of five. This PR removes taskiq and adds pgqueuer.

The seat taskiq holds is native asyncio. taskiq's production path is a broker (its docs recommend aio-pika, NATS, or Redis). pgqueuer does that asyncio job with the PostgreSQL database the application already runs, so the job and the rows it refers to commit together. Huey stays: it is the lightweight small-app queue, including SQLite, and its download count is an order of magnitude higher.

The download signal still favors taskiq. The case for displacement is the job, not the count.

website/data/category_intros/task-queues.md still names taskiq as the asyncio pick. I left that page alone. I can update it here if you want the intro to match the list.

Task Queues is at the five-entry cap. pgqueuer takes taskiq's
challenger seat: an asyncio queue that uses PostgreSQL instead
of a separate broker.

@eelyasfaizi4748-ui eelyasfaizi4748-ui left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants