chore: release v0.3.2#246
Merged
Merged
Conversation
Contributor
QualOps Code Quality AnalysisStatus: ✅ PASSED - No issues found Summary
No issues found in the analyzed code. 📊 Full ReportPowered by QualOps |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release v0.3.2
Fixed
transport (
socket_timeout,socket_connect_timeout,socket_keepalive,socket_keepalive_options,health_check_interval,retry_on_timeout,retry_on_error,max_connections, and thessl_*options) are now forwardedto both long-lived background clients — the PEL reclaimer and the consumer-group
monitor. Previously each created its client with no socket timeout or keepalive
regardless of the transport's settings, so a silently dropped connection (e.g.
cloud Redis failover or an idle-connection reaper) left its blocking reads hung
indefinitely with no way to recover — and for the monitor, that hang struck
during the very failover it exists to recover from.
decode_responsesremainspinned per client (
Falsefor the reclaimer's binary passthrough,Truefor themonitor's string commands) and cannot be overridden by callers.
Added
subscribe()optionsretry_backoff_multiplier(default1.0= the previousconstant cadence),
retry_backoff_max_ms(cap on the escalated delay), andretry_backoff_jitter(spread retries across a worker fleet to avoid athundering herd). The PEL reclaimer now treats a failing message as due once it
has been idle for
retry_on_idle_ms * (retry_backoff_multiplier ** retry_count)(capped at
retry_backoff_max_ms), so a repeatedly-failing message is retriedprogressively less often (e.g. 30s → 60s → 120s …), giving an overloaded
downstream room to recover instead of being hammered on a fixed clock. Backoff
is opt-in and fully backward compatible: the default
multiplier=1.0reproducesthe existing fixed
retry_on_idle_msspacing exactly.After merging, the release will be automatically tagged and published to PyPI.