PGQueuer provides job queuing, locking, and real-time notifications using PostgreSQL's FOR UPDATE SKIP LOCKED and LISTEN/NOTIFY. It's a minimalist alternative for those already using PostgreSQL, avoiding the need for Redis.
I switch between Sublime and Zed all day depending on what task I'm doing, some things it's still not quite as good at as Sublime. The Ruff integration is excellent though, and the good news there is that apparently they're working on a type checker for Ruff's language server.
Yeah, while I'm pretty happy with git in the terminal, I'm eager to see what Zed's take on a git workflow will look like. The inline git blame info is nice, but a UI for committing and push/pulling the repo would be great.
Got a pihole a few years ago, works like a charm. The only annoyance is when you actually look for produces and nearly all links in google are dead due to ads.
I’m currently enhancing the documentation for my project, PGQueuer.
About PGQueuer:
PGQueuer is a minimalist, high-performance job queue library for Python, leveraging PostgreSQL’s LISTEN/NOTIFY for efficient job management. It’s perfect for handling background tasks and managing workflows with simplicity and reliability
Of my head, you could attach a uuid or sequence number to the emitted event. Then based on the uuid or sequence you can let one or the other event consumer pick?
Ex. you have two consumers, if the sequence number is odd, A picks it, if its even B picks.
Great observation, I wrote a little wrongly. What we want ideally is guaranteed delivery to one random free worker. Uuid strategy is better than locking but this could mean that if one worker gets a longer job, all the others on this worker are delayed even if another worker is free.
asyncpg clears out any listeners you have setup once a connection is returned to pool. This will lead to 'missed' events. I guess its something of the same story with psycopg?
If event(s) any jobs will be picked up by the next event or by a timer that checks every 30 seconds or so (can be set by the dev.)
PgQueuer seems pretty similar to Hatchet - both use Postgres, require their own worker processes, both support async. Hatchet seems to be a lot more powerful though: cron, DAG workflows, retries, timeouts, and a UI dashboard.
https://github.com/tktech/chancy is a very early-stage pet project to work around specific issues I keep running into with Celery that has all of this, including a simple plugin-extendable UI with DAG workflow visualization.
- https://github.com/janbjorge/PGQueuer
disclaimer: Im the auther.