Latest Results
Slim the Sentinel seam to one redis-py-delegating factory
Address the second review round on the Redis Sentinel support:
- `connection.py` now only adapts the `redis+sentinel://` URL convention.
Standalone `redis://` / `rediss://` URLs go straight to `Redis.from_url`,
and even inside a Sentinel URL the credentials, database index and query
options are parsed by redis-py's `parse_url` on a rebuilt standalone URL.
- One factory, `redis_from_url(url, *, asynchronous, **kwargs)`, replaces
`parse_redis_url` -> `RedisConnectionConfig` -> `build_redis_client`.
`RedisUrlError` and `redact_redis_url` are gone: malformed URLs raise a
plain `ValueError` whose message never echoes the URL.
- Caller kwargs are defaults and URL options win, matching `Redis.from_url`
(previously `?socket_timeout=7&protocol=3` lost to the messaging defaults).
- The worker cleanup queue builds its client through the same factory, so
`PREFECT_REDIS_WORKER_CLEANUP_QUEUE_URL` accepts Sentinel URLs too.
- Drop the hand-rolled TCP keepalive map; redis-py's platform-aware defaults
apply (same timers on redis-py >= 8, including the macOS fallback).
- Sentinel daemons inherit `socket_*` options via redis-py's own fallback.
- Tests assert on the resulting client and connection pool instead of an
intermediate config dataclass.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RX2GKSvprNLAgJrENSVNRFfatih-acar:feat/redis-sentinel-on-22211 Latest Branches
0%
devin/1787849161-test-harness-isolated-async 0%
devin/1787854871-fix-pyright-errors 0%
fatih-acar:feat/redis-sentinel-on-22211 © 2026 CodSpeed Technology