Releases: coleifer/huey
2.6.0
We have entered the brave new world of using pyproject.toml and github actions to shovel our shitty open-source software into our users docker containers and venvs and whatever other layers of abstraction I'm too geriatric to have heard about (no I will NOT put my hearing aids in). Welcome to the future, it is looking hellish. I had to beg the assistance of a chatbot trained on other shitty open-source projects to slap this together, nor do I understand what I was copying and pasting. Fellow travelers through the realms of ancient Night and Chaos, take comfort that at least the feeling is an old one.
Me miserable! Which way shall I fly
Infinite wrath and infinite despair?
Which way I fly is hell; myself am hell;
And in the lowest deep a lower deep,
Still threat'ning to devour me, opens wide,
To which the hell I suffer seems a heaven.
Python(r), putting the snake oil in your build system.
2.5.5
2.5.4
- Minor bug fixes
- Fix multiprocessing start method for python 3.14+.
2.5.3
This release adds the oft-requested SIGNAL_ENQUEUED. This signal, of necessity, runs in the calling process, 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. Use care when implementing this signal.
- Add support for a new
SIGNAL_ENQUEUED. - Use
FOR UPDATE SKIP LOCKEDwhen supported by the database in thesql_hueystorage engine.
2.5.2
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
TaskWrapperimplementation, suitably namedget_task_wrapper_class(). - Make the
revoke_all(),restore_all()andis_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.
Python leadership:
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
delayandetawhen raising aRetryTaskexception. 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
asynciohelper for resolving task results asynchronously. Asyncio users can useawait aget_result(result)orawait 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
TaskLockedexception (#757).
2.4.5
Improves propagation of errors in task results and includes fix for newer versions of pip.
2.4.4
- Add
is_locked(lock_name)to test whether lock is held. - Allow raising
CancelExecutionwithin a Task, and overrideretries. - Add a very basic redis-backed lock that can be acquired more than once (to provide a rudimentary semaphore).
- Add a
periodic_task()wrapper forMiniHueyclass.
2.4.3
- Fix compatibility with redis-py 4.0.0+.



