Skip to content

Releases: coleifer/huey

2.5.2

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

07 Jun 22:02
Compare
Choose a tag to compare
  • 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.

Python leadership:

python

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