summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/go-redis/redis/internal/error.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-redis/redis/internal/error.go')
-rw-r--r--vendor/github.com/go-redis/redis/internal/error.go27
1 files changed, 18 insertions, 9 deletions
diff --git a/vendor/github.com/go-redis/redis/internal/error.go b/vendor/github.com/go-redis/redis/internal/error.go
index 90f6503a1..0898eeb62 100644
--- a/vendor/github.com/go-redis/redis/internal/error.go
+++ b/vendor/github.com/go-redis/redis/internal/error.go
@@ -12,11 +12,24 @@ type RedisError string
func (e RedisError) Error() string { return string(e) }
-func IsRetryableError(err error) bool {
- return IsNetworkError(err) || err.Error() == "ERR max number of clients reached"
+func IsRetryableError(err error, retryNetError bool) bool {
+ if IsNetworkError(err) {
+ return retryNetError
+ }
+ s := err.Error()
+ if s == "ERR max number of clients reached" {
+ return true
+ }
+ if strings.HasPrefix(s, "LOADING ") {
+ return true
+ }
+ if strings.HasPrefix(s, "CLUSTERDOWN ") {
+ return true
+ }
+ return false
}
-func IsInternalError(err error) bool {
+func IsRedisError(err error) bool {
_, ok := err.(RedisError)
return ok
}
@@ -33,7 +46,7 @@ func IsBadConn(err error, allowTimeout bool) bool {
if err == nil {
return false
}
- if IsInternalError(err) {
+ if IsRedisError(err) {
return false
}
if allowTimeout {
@@ -45,7 +58,7 @@ func IsBadConn(err error, allowTimeout bool) bool {
}
func IsMovedError(err error) (moved bool, ask bool, addr string) {
- if !IsInternalError(err) {
+ if !IsRedisError(err) {
return
}
@@ -69,7 +82,3 @@ func IsMovedError(err error) (moved bool, ask bool, addr string) {
func IsLoadingError(err error) bool {
return strings.HasPrefix(err.Error(), "LOADING ")
}
-
-func IsClusterDownError(err error) bool {
- return strings.HasPrefix(err.Error(), "CLUSTERDOWN ")
-}