Huey
Requires Huey 2.4+ and <3, Python 3.11+. See the compatibility matrix for the full pin string.
Install
Section titled “Install”pip install z4j-hueyWhat it captures
Section titled “What it captures”Huey exposes signals:
| Huey signal | z4j event |
|---|---|
SIGNAL_ENQUEUED |
task.received |
SIGNAL_EXECUTING |
task.started |
SIGNAL_COMPLETE |
task.succeeded |
SIGNAL_RETRYING |
task.retried |
exhausted SIGNAL_ERROR |
task.failed |
terminal SIGNAL_CANCELED / SIGNAL_EXPIRED |
task.revoked |
Actions
Section titled “Actions”| Verb | How |
|---|---|
submit |
instantiate the registered Huey Task and call huey.enqueue(...) |
retry |
re-enqueue only with both complete operator replacement collections |
cancel |
call huey.revoke_by_id(task_id) to prevent pending work from starting; running work is not interrupted |
Cancel is advertised with that pending-only contract, and its command result
reports pending_only: true. Purge, bulk retry, and dead-letter replay are not
advertised. Huey has no primitive here that meets those z4j contracts.
Periodic tasks
Section titled “Periodic tasks”Huey's @huey.periodic_task(crontab(...)) decorators are code. Once the application has imported them, the companion adapter inventories Huey's periodic-task registry at agent start and surfaces those definitions as read-only schedules in the dashboard. It does not scan source files for decorated functions.
The companion adapter inventories these definitions but does not advertise pause, enable, disable, create, update, delete, or trigger-now.
Sqlite / in-memory huey
Section titled “Sqlite / in-memory huey”Single-process setups (SQLite huey, MemoryHuey) work but each process has its own queue. The dashboard reflects this.
Caveats
Section titled “Caveats”- Huey's result expiry defaults to 7 days. If you look up an older task, you may get
ResultTimeout- z4j renders this as "result expired" rather than lost. - No chord/group primitives.