Skip to content
z4jdevPublic

Latest commit

 

History

23 Commits

Folders and files

Repository files navigation

z4j-arq

PyPI version Python License

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.

Compatibility

  • arq 0.26+ (no upper bound)
  • Python 3.11+

Full per-adapter matrix at https://docs.z4j.com/reference/compatibility/.

What it ships

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.

Install

pip install z4j-arq z4j-arqcron

Pair 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 worker

Pairs with

Reliability

  • 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.

Documentation

Full docs at docs.z4j.com/engines/arq/.

License

Apache-2.0, see LICENSE.

Links

Releases

Packages

Contributors

Languages