What's Changed
- Do not install uvloop on Windows by @espdev in #71
- Use XAUTOCLAIM for timeout; separate out Lua; schedule option for StreaqRetry by @Graeme22 in #72
StreaqRetry
can now schedule retries at a specific time:raise StreaqRetry("Oh no!", schedule=datetime.now() + timedelta(hours=3))
- Idle task reclamation is now simpler and more robust, built on Redis'
XAUTOCLAIM
command. Pessimistic execution guarantees are stronger: no setting of a per-task timeout is required, and long-running tasks can be retried much sooner upon failure. Credit goes to Christopher Schleiden for the idea of repeatedly callingXCLAIM
for running tasks, which resets their idle timeouts and allows for usingXAUTOCLAIM
even when tasks have varying durations. Overall, performance should be slightly improved and robustness as well. - Lua scripts for Redis are now contained in the
lua/
directory as actual Lua files for easier reading and debugging. They've also been optimized and commented. - CI now uses uv for publishing to PyPI/TestPyPI
- The warning for no longer using the async context manager has been removed, as coredis version 6 may require async initialization of the Redis client, which would mean the async syntax would need to be restored.
Full Changelog: v5.1.0...v5.2.0