Skip to content

Releases: coleifer/huey

2.5.0

22 Sep 15:18
Compare
Choose a tag to compare
  • 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

2.4.5

09 Feb 14:36
Compare
Choose a tag to compare

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

View commits

2.4.4

09 Feb 14:36
Compare
Choose a tag to compare
  • 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

2.4.3

09 Feb 14:36
Compare
Choose a tag to compare
  • Fix compatibility with redis-py 4.0.0+.

View commits

2.4.2

28 Nov 15:46
Compare
Choose a tag to compare
  • 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() and db_periodic_task().
  • Allow additional lock-names to be specified when flushing locks.

View commits

2.4.1

16 Sep 12:43
Compare
Choose a tag to compare
  • 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 - use fcntl.flock() instead.

View commits

2.4.0

10 Aug 16:25
Compare
Choose a tag to compare

View commits

2.3.2

20 Apr 13:47
Compare
Choose a tag to compare
  • Add hook (Huey.build_error_result) for customizing the error result metadata.
  • Avoid crashing if another module already modified/set the multiprocessing start method.

View commits

2.3.1

04 Mar 15:15
Compare
Choose a tag to compare
  • 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 the Consumer instance.

View commits

2.3.0

04 Mar 15:14
Compare
Choose a tag to compare
  • 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.

View commits