Rudimentary retry support through xautoclaim #1
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.
Description
Currently, nagare does not implement any retry logic. Messages that do not get ACKed by their original consumer remain on the pending list forever.
This PR introduces retries through using the XAUTOCLAIM command introduced in Redis 6.2. The logic is as follows:
Nagare::Config.min_idle_time
msNot implemented yet
Nagare::Config.max_retries
has been reached.Caveats
After merging this PR, Nagare will REQUIRE Redis 6.2. Any older versions will not work, including Google Cloud's and Amazon's Redis-compatible caching solutions.
The redis-rb gem still needs quite a bit of work before being able to release version 6.2, see redis/redis-rb#978