litequeue | starqueue | |
---|---|---|
3 | 4 | |
138 | 0 | |
3.6% | - | |
7.4 | 10.0 | |
about 2 months ago | about 1 year ago | |
Python | Python | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
litequeue
-
Choose Postgres Queue Technology
To make sure you that the message you are trying to retrieve hasn't been locked already by another worker.
[0]: https://github.com/litements/litequeue/
[1]: https://github.com/litements/litequeue/blob/3fece7aa9e9a31e4...
-
SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a Postgres Queue
SQLite is missing some features like `SELECT FOR UPDATE`, but you can work around some issues with a few extra queries. I wrote litequeue[0] with this specific purpose. I haven't been able to use it a lot, so I don't have real-world numbers of how it scales, but the scaling limits depend on how fast you can insert into the database.
[0]: https://github.com/litements/litequeue
-
What's New in SQLite 3.35
The `RETURNING` is so awesome! I'm implementing a set of data structures on top of SQLite, one of them is a queue[0], and I had to do a transaction to lock a message and then return it, but this makes it easier.
There's one little issue I keep finding with SQLite, and it's that most virtual servers / VM images ship with version 3.22.0, and upgrading often means building from source.
In any case, SQLite is absolutely wonderful. My favorite way of building products is having a folder for all the DBs that I mount to docker-compose. This release makes it even better.
[0] https://github.com/litements/litequeue
starqueue
-
Choose Postgres Queue Technology
MS SQL server, Postgres and MySQL all support SKIP LOCKED, which means they are all suitable for running queues.
I built a complete implementation in Python designed to work the same as SQS but be more simple:
https://github.com/starqueue/starqueue
Alternatively if you just want to quickly hack something into your application, here is a complete solution in Python with retries:
import psycopg2
-
SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a Postgres Queue
I wrote a message queue in Python called StarQueue.
It’s meant to be a simpler reimagining of Amazon SQS.
It has an HTTP API and behaves mostly like SQS.
I wrote it to support Postgres, Microsoft’s SQL server and so MySQL because they all support SKIP LOCKED.
At some point I turned it into a hosted service and only maintained the Postgres implementation though the MySQL and SQL server code is still in there.
It’s not an active project but the code is at https://github.com/starqueue/starqueue/
- Show Reddit: StarQueue - Postgres database backed message queue server for Python
-
Show HN: StarQueue database backed message queue server for Python
Hi folks,
This is a project I wrote and since I am doing nothing with it any more I thought I would publish the source code in case anyone finds it interesting.
https://github.com/starqueue/starqueue/
StarQueue is a message queue server written in Python.
It is designed to be a more simple copy of Amazon Simple Queue Server.
Clients access it via HTTP. The API is documented at https://github.com/starqueue/starqueue/tree/main/starqueueserver/website
The database is Postgres.
When I developed it initially, I included seamless support for Postgres, MySQL and Microsoft SQL server.
At some point in the development I gave up on all databases except Postgres, though I have left the MySQL and SQL server code in place.
I deployed StarQueue as an online service at one point (no longer online). This github repo is a copy of the source code for that service.
This project is not live and is archived, but I have posted it here in case anyone finds the source code interesting.
What are some alternatives?
datasette-dateutil - dateutil functions for Datasette
neoq - Queue-agnostic background job library for Go, with a pleasant API and powerful features.
pgjobq - Atomic low latency job queues running on Postgres
pg-boss - Queueing jobs in Node.js using PostgreSQL like a boss
Bedrock - Rock solid distributed database specializing in active/active automatic failover and WAN replication
kubeblocks - KubeBlocks is an open-source control plane that runs and manages databases, message queues and other data infrastructure on K8s.
sqlite_modern_cpp - The C++14 wrapper around sqlite library
BeanstalkD - Beanstalk is a simple, fast work queue.
litestream - Streaming replication for SQLite.
tqs - Tiny Queue Service (Server)
datasette.io - The official project website for Datasette
worker - High performance Node.js/PostgreSQL job queue (also suitable for getting jobs generated by PostgreSQL triggers/functions out into a different work queue)