mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-10 02:17:36 +00:00
2df5d735cc
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>