meta-openembedded/meta-python/recipes-devtools/python/python3-huey_3.0.3.bb
Wang Mingyu 2df5d735cc
python3-huey: upgrade 3.0.1 -> 3.0.3
Changelog:
===========
- 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.
- 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.

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-06-20 23:41:45 -07:00

19 lines
420 B
BlitzBasic

SUMMARY = "a little task queue for python"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5cac039fcc82f01141cc170b48f315d4"
PYPI_PACKAGE = "huey"
SRC_URI[sha256sum] = "1a17fef95fc8432f75413f1b77439cef5f3493c1ddbfba9151756b31a1b2dad3"
RDEPENDS:${PN} += " \
python3-datetime \
python3-logging \
python3-multiprocessing \
python3-json \
"
inherit pypi python_setuptools_build_meta