Releases: coleifer/huey
Releases · coleifer/huey
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
andeta
when raising aRetryTask
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 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
TaskLocked
exception (#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
CancelExecution
within 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 forMiniHuey
class.
2.4.3
- Fix compatibility with redis-py 4.0.0+.
2.4.2
- Fix implementation of schedule-pop Lua script so it works with Redis cluster.
- Ensure Django connections are closed before and after (previously they were only closed after) task execution with
db_task()
anddb_periodic_task()
. - Allow additional lock-names to be specified when flushing locks.
2.4.1
- Attempt to reconnect to database if connection becomes unusable (e.g. due to a server restart). See:
huey.contrib.sql_huey.SqlHuey
. - Do not use a soft file-lock for
FileStorage
- usefcntl.flock()
instead.
2.4.0
- Task expiration: https://huey.readthedocs.io/en/latest/guide.html#task-expiration
- Add option to make
crontab()
parsing strict, raising an error if an invalid interval specification is given. You probably want to enable this. - Fix bug in the FileStorage dequeue() method, which attempted to unlink an open file.
2.3.2
- Add hook (
Huey.build_error_result
) for customizing the error result metadata. - Avoid crashing if another module already modified/set the multiprocessing start method.
2.3.1
- Add
SIGNAL_INTERRUPTED
to signal when a task is interrupted when a consumer exits abruptly. - Use the
Huey.create_consumer()
API within the Django management command, to allow Django users to customize the creation of theConsumer
instance.
2.3.0
- Use monotonic clock for timing operations within the consumer.
- Ensure internal state is cleaned up on file-lock when released.
- Support passing around TaskException as a pickled value.
- Set the multiprocessing mode to "fork" on MacOS and Python 3.8 or newer.
- Added option to enforce FIFO behavior when using Sqlite as storage.
- Added the
on_shutdown
handler to djhuey namespace. - Ensure exception is set on AsyncResult in mini-huey.