Skip to content

Releases: coleifer/huey

2.6.0

06 Jan 03:11

Choose a tag to compare

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.

im-742836677f

2.5.5

06 Jan 03:03

Choose a tag to compare

  • pypa/pypi is a joke.

View commits

1733152230260308

2.5.4

06 Jan 03:02

Choose a tag to compare

  • Minor bug fixes
  • Fix multiprocessing start method for python 3.14+.

View commits

2.5.3

19 Mar 14:56

Choose a tag to compare

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 LOCKED when supported by the database in the sql_huey storage engine.

View commits

im-6e1a4c9e28

2.5.2

25 Sep 18:05

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

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

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

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

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

Choose a tag to compare

  • Fix compatibility with redis-py 4.0.0+.

View commits