I'd like to see this code look a bit more like DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(), with a configurable recovery interval and multiple retries until the container is stopped. Also, I think we need to specifically deal with RedisConnectionFailureExceptions so we aren't attempting to reconnect if other types of failures occur.