[redis-messenger] remove undefined array key warnings #45619
Merged
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.
check that we actually have some information back from redis before assuming its an array with 2 keys to avoid undefined array key warnings as per #45270
so the code in question is this:
I think what's happening, as I often can have up to 1000 workers (yup, for real, making 1000 http requests to remote sites - see mySites.guru) I think the logic might be flawed.
Because, the following line gets the number of messages using ZCOUNT
It will then enter a loop counting down that number of messages checking them
At the same time, 999 other workers can be doing the same thing
it gets to a point where one of the workers doesnt get a message back from
ZPOPMIN
and thus we get undefined array keys...You can see the result of ZPOPMIN is no longer an array once empty using the interactive test on the official redis page.