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.3
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.3.tar.gz | 48.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| entroq-0.12.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 88.3 kB
Release files / entroq-0.12.3.tar.gz
| Download URL | entroq-0.12.3.tar.gz |
|---|---|
| Size | 48.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1b666b862e86d92567d69aff270cb69339394d8a7bc5b8ab5c5fa2908b197017
|
|
BLAKE2b-256 checksum How to use checksums |
cce896a3a9e632cd513cd89aca05a2214f3c65548e0331027a6c648cd49695da
|
| 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.3-py3-none-any.whl
| Download URL | entroq-0.12.3-py3-none-any.whl |
|---|---|
| Size | 39.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0ffb47b1430198f612e974190c95b73b51f03b013814a672678a24df057607d6
|
|
BLAKE2b-256 checksum How to use checksums |
04fba8dc761dd2da1eae3f81d44e518ab3eaf38ff3081e4491c7a827aec8dd94
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|