Huey Versions Save

a little task queue for python

2.5.0

7 months ago
  • 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

1 year ago

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

View commits

2.4.4

1 year ago
  • 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

1 year ago
  • Fix compatibility with redis-py 4.0.0+.

View commits

2.4.2

2 years ago
  • 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

2 years ago
  • 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

2 years ago

View commits

2.3.2

3 years ago
  • 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

3 years ago
  • 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

3 years ago
  • 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