Skip to content

Commit

Permalink
chore: refactor redis (zeromicro#3844)
Browse files Browse the repository at this point in the history
  • Loading branch information
kevwan authored Jan 13, 2024
1 parent 368caa7 commit 9e33b55
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
19 changes: 10 additions & 9 deletions core/stores/redis/hook.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package redis

import (
"context"
"errors"
"io"
"net"
"strings"
Expand Down Expand Up @@ -29,7 +30,6 @@ var (
type hook struct{}

func (h hook) DialHook(next red.DialHook) red.DialHook {
// no need to implement
return next
}

Expand Down Expand Up @@ -84,22 +84,23 @@ func (h hook) ProcessPipelineHook(next red.ProcessPipelineHook) red.ProcessPipel
}

func formatError(err error) string {
if err == nil || err == red.Nil {
if err == nil || errors.Is(err, red.Nil) {
return ""
}

opErr, ok := err.(*net.OpError)
var opErr *net.OpError
ok := errors.As(err, &opErr)
if ok && opErr.Timeout() {
return "timeout"
}

switch err {
case io.EOF:
switch {
case err == io.EOF:
return "eof"
case context.DeadlineExceeded:
case errors.Is(err, context.DeadlineExceeded):
return "context deadline"
case breaker.ErrServiceUnavailable:
return "breaker"
case errors.Is(err, breaker.ErrServiceUnavailable):
return "breaker open"
default:
return "unexpected error"
}
Expand Down Expand Up @@ -140,7 +141,7 @@ func (h hook) startSpan(ctx context.Context, cmds ...red.Cmder) (context.Context
return ctx, func(err error) {
defer span.End()

if err == nil || err == red.Nil {
if err == nil || errors.Is(err, red.Nil) {
span.SetStatus(codes.Ok, "")
return
}
Expand Down
2 changes: 1 addition & 1 deletion core/stores/redis/hook_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ func TestFormatError(t *testing.T) {
assert.Equal(t, "context deadline", formatError(context.DeadlineExceeded))

// Test case: err is breaker.ErrServiceUnavailable
assert.Equal(t, "breaker", formatError(breaker.ErrServiceUnavailable))
assert.Equal(t, "breaker open", formatError(breaker.ErrServiceUnavailable))

// Test case: err is unknown
assert.Equal(t, "unexpected error", formatError(errors.New("some error")))
Expand Down

0 comments on commit 9e33b55

Please sign in to comment.