Huey

Latest version: v2.5.3

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 9

2.5.3

This release adds the oft-requested `SIGNAL_ENQUEUED`. This signal, of
necessity, runs **in the calling process** and not in the consumer, since tasks
are enqueued by the application typically. The exception is tasks that are
enqueued for retry by the consumer or tasks (including periodic tasks) enqueued
by the scheduler.

* Add support for a new `SIGNAL_ENQUEUED`.
* Use `FOR UPDATE SKIP LOCKED` when supported by the database in the `sql_huey`
storage engine.

[View commits](https://github.com/coleifer/huey/compare/2.5.2...2.5.3)

2.5.2

* Prevent bad task serialization in schedule from causing a batch of tasks
to be lost, see 815..
* Ensure we catch ResultTimeout which may occur when used with Sentinel, 813.
* Remove junk SQS implementation I was testing out.

2.5.1

* More makework thanks to the ass-clowns running Python. Fix issue with
deprecation of `datetime.utcnow()` in 3.12.
* Add API for customizing the `TaskWrapper` implementation, suitably named
`get_task_wrapper_class()`.
* Make the `revoke_all()`, `restore_all()` and `is_revoked()` more robust for
various input types.
* Fix bug that could occur in the event of a SIGHUP followed by a SIGINT when
using thread workers.
* Added new experimental contrib module for SQS queue and S3 result storage.

2.5.0

* Check to ensure the gevent monkeypatch was applied when running the consumer
with greenlet workers, log warning if it is not.
* Explicitly clear the revoked flag on task instances after execution (713).
This will help reduce junk keys left in the storage if you attempt to revoke
a task while it is executing.
* Add support for `delay=`, `eta=` in Huey's `.s()` and `.then()` - this adds
support for delaying or scheduling pipelines.
* Add support for rescheduling callback pipelines when rescheduling a task.
This is enabled by default (`preserve_pipeline=True`).
* Add an `on_commit_task()` decorator for Django extension that will enqueue
the task after any database changes have been committed. This eliminates a
common race condition where a task is enqueued and executed before the
corresponding database changes have been committed.
* Allow overriding the `delay` and `eta` when raising a `RetryTask` exception.
This provides finer-grained control over when a task should be retried.
* Add a very simple `ResultGroup.as_completed()` helper to provide a way to
deal with multiple results as they become available. Refs 746.
* Add an `asyncio` helper for resolving task results asynchronously. Asyncio
users can use `await aget_result(result)` or `await aget_result_group(rg)` to
fetch a task result in non-blocking fashion.
* Fix bug in SIGINT and SIGTERM behavior for gevent users.
* Include lock name when a task fails due to `TaskLocked` exception (757).

[View commits](https://github.com/coleifer/huey/compare/2.4.5...2.5.0)

2.4.5

Not secure
Improves propagation of errors in task results and includes fix for newer
versions of pip.

[View commits](https://github.com/coleifer/huey/compare/2.4.4...2.4.5)

2.4.4

Not secure
* Add `is_locked(lock_name)` to test whether lock is held.
* Allow raising `CancelExecution` within a Task, and override `retries`.
* Add a very basic redis-backed lock that can be acquired more than once (to
provide a rudimentary semaphore).
* Add a `periodic_task()` wrapper for `MiniHuey` class.

[View commits](https://github.com/coleifer/huey/compare/2.4.3...2.4.4)

Page 1 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.