z4j-rq
The RQ engine adapter for z4j.
Streams supported RQ job lifecycle events from your workers to z4j and accepts operator control actions from the dashboard. Pair with z4j-rqscheduler to manage periodic schedules.
Compatibility
- RQ 1.10.1+ and <3 (capped below the RQ 3.0 breaking-major rewrite)
- Python 3.11+
Full per-adapter matrix at https://docs.z4j.com/reference/compatibility/.
What it ships
| Capability | Notes |
|---|---|
| Job lifecycle events | started, succeeded, failed, revoked (canceled) |
| Job discovery | runtime registry of queue names + worker introspection |
| Submit / retry / cancel | direct against the RQ queue |
| Bulk retry | retries brain-resolved, project-owned explicit IDs by reference; never sweeps the broker-wide failed registry |
| Purge queue | with confirm-token guard |
| Reconcile task | via Redis-backed job hash lookup |
Install
pip install z4j-rq z4j-rqscheduler
Pair with a framework adapter:
pip install z4j-django z4j-rq z4j-rqscheduler # Django
pip install z4j-flask z4j-rq z4j-rqscheduler # Flask
pip install z4j-fastapi z4j-rq z4j-rqscheduler # FastAPI
pip install z4j-bare z4j-rq z4j-rqscheduler # framework-free worker
Pairs with
z4j-rqscheduler, schedule adapter for rq-scheduler
Reliability
-
For POSIX fork workers, select the memory-corrected worker through RQ's standard CLI extension point:
rq worker --worker-class z4j_rq.worker.Worker default
Keep your existing queues, Redis options, settings module and z4j startup integration. In Python, import
Workerfromz4j_rq.workerinstead ofrq. The worker sets each job's environment only in its child process, preventing the parent-side native allocation growth reproduced with stock RQ on glibc. RQ retains execution, monitoring, timeout, retry and shutdown handling; the RQ 1.x session and RQ 2.x process-group behavior are preserved. -
Selecting this class is explicit. Installing the adapter alone does not replace stock or custom workers.
SimpleWorker,SpawnWorkerand Windows workers are outside this fork-worker repair. If you retain an affected stock fork worker, use--max-jobs 50000with a process manager configured to restart successful exits. Normal supervision and application memory limits remain useful with either worker. -
Lifecycle-capture failures are isolated from RQ workers and job hooks; capture hooks make no brain network request inline.
-
The in-process event queue and SQLite outbound buffer are bounded. Queue overflow drops new events and buffer pressure evicts oldest rows; both losses are logged.
Documentation
Full docs at docs.z4j.com/engines/rq/.
License
Apache-2.0, see LICENSE.
The fork boundary adapted from RQ retains its BSD-2-Clause notice in
RQ_LICENSE, included in the installed package.
Links
- Homepage: https://z4j.com
- Documentation: https://docs.z4j.com
- PyPI: https://pypi.org/project/z4j-rq/
- Issues: https://github.com/z4jdev/z4j-rq/issues
- Changelog: CHANGELOG.md
- Security: security@z4j.com (see SECURITY.md)
Metadata
Release files for z4j-rq 1.12.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| z4j_rq-1.12.0.tar.gz | 71.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| z4j_rq-1.12.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 131.0 kB
Release files / z4j_rq-1.12.0.tar.gz
| Download URL | z4j_rq-1.12.0.tar.gz |
|---|---|
| Size | 71.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
001acb28e97da5c0e1f114383a30b0c331c3b02246ccb7efd0fc2aa0bc00c4df
|
|
BLAKE2b-256 checksum How to use checksums |
cc53cd3e1a8339b0b6cb82047a33679f40f085cf7a686316fbbb722a2ff00b76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / z4j_rq-1.12.0-py3-none-any.whl
| Download URL | z4j_rq-1.12.0-py3-none-any.whl |
|---|---|
| Size | 59.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a705e082c352b72601d61a9a73a4a47f9395e3a740d3d27f70d16384c9eb758b
|
|
BLAKE2b-256 checksum How to use checksums |
b5d51e0918cfb653d4ac59cceedd78cd7d1cf9e61d8a28cf16b115968dec95ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|