Conversation
Item 2: a corrupted or externally-produced timer id with non-UTF-8 bytes
used to raise UnicodeDecodeError on every poll, leaving the offending
ZSET entry in place — unbounded log noise and wasted polls. Catch the
decode failure separately, log a WARNING with the raw bytes, and remove
the entry from both the timeline and payload keys so polls recover.
Item 6: drop `# pragma: no cover` from the two top-level error branches
in the consume loop and add unit tests asserting the log message format
(including `{e!r}` repr of the exception). The recent
`Inline exception repr in subscriber error logs` change is exactly the
class of regression these tests are intended to catch.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
publish, cancel_timer, has_pending, get_pending_timers and cancel_all
now raise ValueError when handed an empty topic. cancel_all("") was the
worst foot-gun: it silently nuked whatever orphaned keys happened to
match the empty-topic key prefix.
Drop the topic="" default from publish; topic is now a required
positional argument. This is source-incompatible for callers that
relied on the default, which is acceptable while pyproject version is
still 0.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- how-it-works.md: add an "Operational requirements" section calling
out single-primary Redis, Sentinel support, and that brokers'
wall-clock skew must stay well below lease_ttl to avoid duplicate
delivery (item 3); add tuning guidance to the lease_ttl row
("3-5x P99 handler runtime", item 11).
- testing.md: note that the fake broker does not simulate lease_ttl
or re-delivery, so handlers must verify idempotency separately
(item 7).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.
No description provided.