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.
PingConnectionHandler will periodically send PING commands to Redis Server, and decide whether to reconnect based on whether it fails (the current strategy is to reconnect after three consecutive failures)
This is essentially because KeepAlive that only relies on TCP is unreliable, for details, please refer to: #2082
change
Add
PingConnectionHandler
, and decide whether to enable it according to the size of pingConnectionInterval (default is 0, not enabled,unit: ms).If the sendPing command fails 3 times in a row (defined by MAX_PING_FAILED_TIMES and not user-configurable), it will trigger
channel.close
and then reconnect.The return result of the PING command ignores
RedisLoadingException
andRedisBusyException
exceptions.test
There is no good way to unit test, so I manually verified it using iptables as mentioned in the original issue and the test passed.
Make sure that: