Skip to content

Update dependency huey to v3#2323

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/huey-3.x
Open

Update dependency huey to v3#2323
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/huey-3.x

Conversation

@renovate

@renovate renovate Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
huey (changelog) ==2.6.0==3.0.3 age confidence

Release Notes

coleifer/huey (huey)

v3.0.3

Compare Source

  • Add a Django 6.0 task backend - pretty much works the same way the normal
    Django integration works (manage.py run_huey), but using Django's canonical
    APIs and decorator. Docs here.

View commits

v3.0.2

Compare Source

  • Redis blocking dequeue no longer swallows ConnectionError -- the error
    propagates to the worker, which logs it and applies exponential backoff.
    Previously a downed redis server caused workers to busy-loop silently.
  • Chord callbacks now fire when a member task is revoked, expired or cancelled
    by a pre-execute hook -- the skipped member contributes a None placeholder
    result. Previously the callback was silently lost.
  • Scheduler skips missed periodic checks after a stall (e.g. suspend/resume)
    instead of running them back-to-back, which enqueued duplicate periodic
    tasks for the current minute.
  • Fix inverted timeout clamp in wait_result() when using notify_result
    with redis < 6 (or an unknown server version): timeouts over one second were
    cut to 1s, and sub-second timeouts blocked indefinitely.
  • put_if_empty() is now atomic for the memory and file storage backends,
    restoring lock_task() mutual exclusion on those backends.
  • FileLock no longer unlinks an existing lock file at construction time,
    which broke mutual exclusion for any process already holding the lock.
  • Process-worker task timeouts use signal.setitimer(), so float / sub-second
    timeouts work. Previously a timeout less than 1 second was silently ignored
    (alarm(0) cancels the timer) and fractional seconds were truncated.
  • Consumer signal handlers only set flags -- logging and greenlet cleanup now
    happen in the main loop, avoiding re-entrant I/O from signal context.
  • A user-supplied task kwarg named task is no longer dropped during
    serialization. Context tasks (context=True) inject the task instance into
    a copy of the kwargs rather than mutating the task's data.
  • MemoryStorage.dequeue() and add_to_schedule() acquire the storage lock,
    like the other mutating methods.
  • normalize_time() treats delay=0 as "now" rather than ignoring it, so
    e.g. expires=0 means "expires immediately" instead of "never expires".
  • Redis enqueued_items(limit) returned limit + 1 items from the producer
    end of the queue; it now returns the next-limit items to be dequeued,
    matching the other storage backends.
  • Redis-dependent tests are skipped when no local redis server is reachable,
    instead of failing at import time.

View commits

v3.0.1

Compare Source

  • Fix bug in redis version parsing when using Elasticache or any other that
    sends major/minor. redis-py incorrectly parses these as floats because
    there's only a single decimal, so the version check was breaking.
  • Rename max task option --max-tasks (previously was --max_tasks).

View commits

v3.0.0

Compare Source

  • Add chord() (map -> reduce) and group() (map) primitives.
  • Add timeout (using SIGALRM for process and gevent.Timeout for greenlet) to
    control task running time. For threads, unfortunately, there's no good
    mechanism so instead APIs for cooperatively checking timeout are provided on
    the Task instance.
  • Add simple fixed-window rate_limit() for tasks.
  • Add Result.is_ready() method for checking result readiness.
  • New option for low-latency result fetching, available for RedisHuey. To use,
    pass notify_result=True when initializing your Huey instance.
  • Add new incr(key, amount=1) to storage API for atomic increment primitive.
    This is used by chord().
  • Add new wait_result() method to storage APIs for efficiently waiting for a
    result to become ready. The default implementation uses the exponential
    backoff from the previous implementation of a blocking Result.get() - so no
    changes are needed. However if you have a custom storage implementation, this
    provides a mechanism for pub/sub or other notification of result readiness.
  • Remove Python 2.x compatibility.

View commits


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the renovate label Jun 2, 2026
@github-project-automation github-project-automation Bot moved this to Backlog in Bot Board Jun 2, 2026
@renovate renovate Bot force-pushed the renovate/huey-3.x branch from 5ee033d to c1f397f Compare June 2, 2026 17:14
@renovate renovate Bot force-pushed the renovate/huey-3.x branch 2 times, most recently from a205836 to 75909a0 Compare June 12, 2026 05:02
Signed-off-by: Renovate Bot <bot@renovateapp.com>
@renovate renovate Bot force-pushed the renovate/huey-3.x branch from 75909a0 to 4d0e352 Compare June 12, 2026 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant