EntroQ (Python client)
Python client for EntroQ, a fault-tolerant,
competing-consumer task queue with exactly-once semantics and an atomic
Modify operation over tasks and a companion key/value doc store.
This package provides an async client and a small worker framework. It speaks to EntroQ two ways:
-
EntroQJSON— talks to a Go EntroQ server over its HTTP/Connect API. Use this when a server is already running (eqpg serve,eqmem serve,eqredis serve, oreqsqlite serve). -
EntroQ(inentroq.experimental.pg) — talks directly to PostgreSQL, no Go server in the path. It uses the same stored procedures the Goeqpgbackend does, and bundles the canonical schema so a pip-only environment can initialize a database without a Go toolchain. Requires thepgextra.Experimental. Anything under
entroq.experimentalhas no stability guarantee and may change or be removed in any release, including patches. The stable, supported path isEntroQJSONagainst a Go server. Pin an exact version if you depend on the direct client.
Install
pip install entroq # client + worker (JSON/HTTP)
pip install "entroq[pg]" # adds the direct-PostgreSQL backend (psycopg 3)
Quick start
A worker claims tasks from one or more queues and dispatches them to a handler:
import asyncio
from entroq import EntroQWorker, Modification
from entroq.json import EntroQJSON
@EntroQWorker.handler
async def process(task, docs):
# ... do the work ...
return Modification(Modification.deleting(task)) # ack by deleting
async def main():
async with EntroQJSON("http://localhost:8080") as eq:
await EntroQWorker(eq, "my-queue").run(process)
asyncio.run(main())
Talking straight to PostgreSQL instead of a server (experimental, see above):
from entroq.experimental.pg import EntroQ
eq = EntroQ("host=localhost dbname=entroq user=entroq password=secret")
A worker backed by the direct-PostgreSQL client also carries EntroQ's built-in,
always-on garbage collection for /gc=-marked queues on the backend's behalf; a
worker talking to a Go server does not, since the server collects for itself.
Documentation
See the main repository for the concepts
(tasks, claims, the atomic Modify, the doc store, and the /gc= naming
convention) and the server/backends the Go side provides.
Metadata
Release files for entroq 0.12.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| entroq-0.12.4.tar.gz | 50.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| entroq-0.12.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.3 kB
Release files / entroq-0.12.4.tar.gz
| Download URL | entroq-0.12.4.tar.gz |
|---|---|
| Size | 50.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
92805774b1cc2317af0104f5f077b18ad4443cb335cd13e1af82b8a4a260c6e9
|
|
BLAKE2b-256 checksum How to use checksums |
46eb10373f8c90b67f32ff8bfb78062a999cb3dfba214e514ab0947b2d6ac533
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / entroq-0.12.4-py3-none-any.whl
| Download URL | entroq-0.12.4-py3-none-any.whl |
|---|---|
| Size | 40.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cacb7c50836c48981cdbf690b456dda7fcfe71163a53ae6fc84dda36a2fe6df4
|
|
BLAKE2b-256 checksum How to use checksums |
496464e66910c83dd6a0168966efccd2d140bca75c55a03035acadfb582ffeb1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|