Skip to content

Huey

Requires Huey 2.4+ and <3, Python 3.11+. See the compatibility matrix for the full pin string.

Terminal window
pip install z4j-huey

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

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.

Single-process setups (SQLite huey, MemoryHuey) work but each process has its own queue. The dashboard reflects this.

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

See scheduler: huey-periodic.