The arq engine adapter for z4j.
Streams supported arq job lifecycle events from your async workers to the z4j and accepts operator control actions from the dashboard. Pair with z4j-arqcron to surface arq cron jobs.
- arq 0.26+ (no upper bound)
- Python 3.11+
Full per-adapter matrix at https://docs.z4j.com/reference/compatibility/.
| Capability | Notes |
|---|---|
| Job lifecycle events | in-progress, complete, failed |
| Job discovery | caller-supplied function-name list (arq has no auto-registry) |
| Submit / cancel | direct against the arq Redis pool; cancel succeeds only when Job.abort confirms it |
| Reconcile task | via arq's Redis-backed result store |
Async-native, uses arq's existing on_job_start / on_job_end hooks.
Not yet supported (the brain greys these actions out): retry-by-id, bulk retry, and purge queue. arq exposes no job-enumeration, dead-letter, or re-enqueue-by-id primitive, so these are deferred rather than shipped.
pip install z4j-arq z4j-arqcronPair with a framework adapter (FastAPI is the most common pairing for arq):
pip install z4j-fastapi z4j-arq z4j-arqcron
pip install z4j-bare z4j-arq z4j-arqcron # framework-free workerz4j-arqcron, schedule adapter for arq cron jobs
- Lifecycle-capture failures are isolated from arq's worker loop and job code; 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.
Full docs at docs.z4j.com/engines/arq/.
Apache-2.0, see LICENSE.
- Homepage: https://z4j.com
- Documentation: https://docs.z4j.com
- PyPI: https://pypi.org/project/z4j-arq/
- Issues: https://github.com/z4jdev/z4j-arq/issues
- Changelog: CHANGELOG.md
- Security: security@z4j.com (see SECURITY.md)