Skip to content
This repository has been archived by the owner on Sep 15, 2023. It is now read-only.

cron redis lock #45

Merged
merged 1 commit into from
Mar 2, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions edingtalk/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ require (
github.com/BurntSushi/toml v0.3.1
github.com/gin-gonic/gin v1.6.3
github.com/go-redis/redis/v8 v8.6.0
github.com/gotomicro/ego v0.3.6
github.com/gotomicro/ego-component/eredis v0.1.5-0.20210301102617-a45f200f21c4
github.com/gotomicro/ego v0.3.10
github.com/gotomicro/ego-component/eredis v0.2.0
github.com/stretchr/testify v1.7.0
go.uber.org/zap v1.15.0
)
10 changes: 10 additions & 0 deletions edingtalk/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/HdrHistogram/hdrhistogram-go v0.9.0 h1:dpujRju0R4M/QZzcnR1LH1qm+TVG3UzkWdp5tH1WMcg=
github.com/HdrHistogram/hdrhistogram-go v0.9.0/go.mod h1:nxrse8/Tzg2tg3DZcZjm6qEclQKK70g0KxO61gFFZD4=
github.com/HdrHistogram/hdrhistogram-go v1.0.1/go.mod h1:BWJ+nMSHY3L41Zj7CA3uXnloDp7xxV0YvstAE7nKTaM=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
Expand Down Expand Up @@ -72,15 +73,20 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gotomicro/ego v0.3.6 h1:WkRK03IEgDpkZmkOSvu8PKjHcL9CjdTqPSWY99NWmsk=
github.com/gotomicro/ego v0.3.6/go.mod h1:0FfBqO1mxIcKD92ko5GYp0JyifFjw+dnZzSbwP1JX7M=
github.com/gotomicro/ego v0.3.10 h1:Ekqykbb7ReNwlx6xQJ9cBc4HS85DJ2Tnp1U+ib8A07s=
github.com/gotomicro/ego v0.3.10/go.mod h1:1X86SNjzc9KLZ5BnywlWeka+WRcIkDqWYPIl2N9SyTU=
github.com/gotomicro/ego-component/eredis v0.1.5-0.20210301102617-a45f200f21c4 h1:bC82t7RvXA0nIUr8Qy2bbjti6yGPDsxREvB+xGxTcKU=
github.com/gotomicro/ego-component/eredis v0.1.5-0.20210301102617-a45f200f21c4/go.mod h1:Lf2dJr6xrWonvX0pvr6q73zye4zOsRA9aCgUviOH3dE=
github.com/gotomicro/ego-component/eredis v0.2.0 h1:cEb0YLHygVzaJ75Hq3vAF10YC/BaH1v9OpSRG7sHn0c=
github.com/gotomicro/ego-component/eredis v0.2.0/go.mod h1:Lf2dJr6xrWonvX0pvr6q73zye4zOsRA9aCgUviOH3dE=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
Expand Down Expand Up @@ -124,6 +130,8 @@ github.com/onsi/gomega v1.10.5 h1:7n6FEkpFmfCoo2t+YYqXH0evK+a9ICQz0xcAy9dYcaQ=
github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48=
github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/pierrec/lz4 v2.6.0+incompatible h1:Ix9yFKn1nSPBLFl/yZknTp8TU5G4Ps0JDmguYK6iH1A=
github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
Expand Down Expand Up @@ -163,6 +171,8 @@ github.com/uber/jaeger-client-go v2.23.1+incompatible h1:uArBYHQR0HqLFFAypI7RsWT
github.com/uber/jaeger-client-go v2.23.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
github.com/uber/jaeger-lib v2.3.0+incompatible h1:B/kUIXcj6kIU3WSXgeJ7/uYj94I/r0LDa//JKgN/Sf0=
github.com/uber/jaeger-lib v2.3.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/uber/jaeger-lib v2.4.0+incompatible h1:fY7QsGQWiCt8pajv4r7JEvmATdCVaWxXbjwyYwsNaLQ=
github.com/uber/jaeger-lib v2.4.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo=
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=
Expand Down
7 changes: 4 additions & 3 deletions eredis/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
# eredis 组件使用指南


## 简介

对 [go-redis](https://github.com/go-redis/redis) 进行了轻量封装,并提供了以下功能:
Expand All @@ -9,8 +7,11 @@
- 支持自定义拦截器
- 提供了默认的 Debug 拦截器,开启 Debug 后可输出 Request、Response 至终端。
- 提供了默认的 Metric 拦截器,开启后可采集 Prometheus 指标数据
- 提供了redis的分布式锁
- 提供了redis的分布式锁的定时任务

## 快速上手

使用样例可参考 [examples](./examples/main.go)
使用样例可参考 [examples](./examples/redis/main.go)
使用样例可参考 [examples](./examples/redislockcron/main.go)

2 changes: 1 addition & 1 deletion eredis/component.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func (r *Component) Sentinel() *redis.Client {
return nil
}

// LockClient gets default distributed lock client
// LockClient gets default distributed Lock client
func (r *Component) LockClient() *lockClient {
return r.lockClient
}
64 changes: 64 additions & 0 deletions eredis/ecronlock/component.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package ecronlock

import (
"context"
"github.com/gotomicro/ego-component/eredis"
"github.com/gotomicro/ego/core/elog"
"sync"
"time"
)

type Component struct {
name string
config *Config
logger *elog.Component
client *eredis.Component
mutuex sync.RWMutex
locker *eredis.Lock
}

func newComponent(name string, config *Config, logger *elog.Component, client *eredis.Component) *Component {
reg := &Component{
name: name,
logger: logger,
client: client,
}
return reg
}

func (c *Component) Lock(ctx context.Context, key string, ttl time.Duration) error {
locker := c.client.LockClient()
lock, err := locker.Obtain(ctx, key, ttl, eredis.WithLockOptionRetryStrategy(eredis.LinearBackoffRetry(ttl)))
if err != nil {
return err
}
c.mutuex.Lock()
c.locker = lock
c.mutuex.Unlock()
return nil
}

func (c *Component) Unlock(ctx context.Context, key string) error {
c.mutuex.Lock()
locker := c.locker
c.mutuex.Unlock()
if locker == nil {
return nil
}

err := c.locker.Release(ctx)
if err != nil {
c.logger.Warn("cron unlock warning", elog.FieldErr(err))
}
return nil
}

func (c *Component) Refresh(ctx context.Context, key string, ttl time.Duration) error {
c.mutuex.Lock()
locker := c.locker
c.mutuex.Unlock()
if locker == nil {
return nil
}
return locker.Refresh(ctx, ttl)
}
11 changes: 11 additions & 0 deletions eredis/ecronlock/config.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package ecronlock

// Config ...
type Config struct {
OnFailHandle string
}

// DefaultConfig ...
func DefaultConfig() *Config {
return &Config{}
}
55 changes: 55 additions & 0 deletions eredis/ecronlock/container.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package ecronlock

import (
"github.com/gotomicro/ego-component/eredis"
"github.com/gotomicro/ego/core/econf"
"github.com/gotomicro/ego/core/elog"
)

type Option func(c *Container)

type Container struct {
config *Config
name string
logger *elog.Component
client *eredis.Component
}

func DefaultContainer() *Container {
return &Container{
config: DefaultConfig(),
logger: elog.EgoLogger.With(elog.FieldComponent(eredis.PackageName)),
}
}

func Load(key string) *Container {
c := DefaultContainer()
if err := econf.UnmarshalKey(key, &c.config); err != nil {
c.logger.Panic("parse Config error", elog.FieldErr(err), elog.FieldKey(key))
return c
}
c.logger = c.logger.With(elog.FieldComponentName(key))
c.name = key
return c
}

func WithClientRedis(kubernetes *eredis.Component) Option {
return func(c *Container) {
c.client = kubernetes
}
}

// Build ...
func (c *Container) Build(options ...Option) *Component {
for _, option := range options {
option(c)
}
if c.client == nil {
if c.config.OnFailHandle == "panic" {
c.logger.Panic("client redis nil", elog.FieldKey("use WithClientRedis method"))
} else {
c.logger.Error("client redis nil", elog.FieldKey("use WithClientRedis method"))
}
}
return newComponent(c.name, c.config, c.logger, c.client)
}
4 changes: 2 additions & 2 deletions eredis/error.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ const (
// ErrInvalidParams is returned when parameters is invalid.
ErrInvalidParams = Err("invalid params")

// ErrNotObtained is returned when a lock cannot be obtained.
// ErrNotObtained is returned when a Lock cannot be obtained.
ErrNotObtained = Err("redislock: not obtained")

// ErrLockNotHeld is returned when trying to release an inactive lock.
// ErrLockNotHeld is returned when trying to release an inactive Lock.
ErrLockNotHeld = Err("redislock: lock not held")
)
File renamed without changes.
11 changes: 11 additions & 0 deletions eredis/examples/redislockcron/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[redis.test]
debug = true # ego增加redis debug,打开后可以看到,配置名、地址、耗时、请求数据、响应数据
addr = "127.0.0.1:6379"
enableAccessInterceptor = true
enableAccessInterceptorReq = true
enableAccessInterceptorRes = true
[cron.default]
withSeconds = false
concurrentDelay = 1
immediatelyRun = false
distributedTask = true
34 changes: 34 additions & 0 deletions eredis/examples/redislockcron/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package main

import (
"github.com/gotomicro/ego"
"github.com/gotomicro/ego-component/eredis/ecronlock"
"github.com/gotomicro/ego/core/elog"
"github.com/gotomicro/ego/task/ecron"
"time"

"github.com/gotomicro/ego-component/eredis"
)

// export EGO_DEBUG=true && go run main.go --config=config.toml
func main() {
err := ego.New().Cron(cronJob()).Run()
if err != nil {
elog.Panic("startup", elog.FieldErr(err))
}
}

var eredisClient *eredis.Component

func cronJob() ecron.Ecron {
lock := ecronlock.Load("").Build(ecronlock.WithClientRedis(eredis.Load("redis.test").Build()))
cron := ecron.Load("cron.default").Build(ecron.WithLocker(lock))
cron.Schedule(ecron.Every(time.Second*10), ecron.FuncJob(helloWorld))
return cron
}

func helloWorld() error {
elog.Info("info job")
elog.Warn("warn job")
return nil
}
4 changes: 3 additions & 1 deletion eredis/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@ go 1.15

require (
github.com/BurntSushi/toml v0.3.1
github.com/codahale/hdrhistogram v0.9.0 // indirect
github.com/go-redis/redis/v8 v8.6.0
github.com/gotomicro/ego v0.3.6
github.com/gotomicro/ego v0.3.10
github.com/stretchr/testify v1.7.0
google.golang.org/protobuf v1.25.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
)
15 changes: 15 additions & 0 deletions eredis/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/HdrHistogram/hdrhistogram-go v0.9.0 h1:dpujRju0R4M/QZzcnR1LH1qm+TVG3UzkWdp5tH1WMcg=
github.com/HdrHistogram/hdrhistogram-go v0.9.0/go.mod h1:nxrse8/Tzg2tg3DZcZjm6qEclQKK70g0KxO61gFFZD4=
github.com/HdrHistogram/hdrhistogram-go v1.0.1/go.mod h1:BWJ+nMSHY3L41Zj7CA3uXnloDp7xxV0YvstAE7nKTaM=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
Expand Down Expand Up @@ -43,6 +44,7 @@ github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+
github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI=
github.com/go-redis/redis/v8 v8.6.0 h1:swqbqOrxaPztsj2Hf1p94M3YAgl7hYEpcw21z299hh8=
github.com/go-redis/redis/v8 v8.6.0/go.mod h1:DQ9q4Rk2HtwkrwVrdgmphoOQDMfpvcd/nHEwRsicg8s=
github.com/go-resty/resty/v2 v2.3.0 h1:JOOeAvjSlapTT92p8xiS19Zxev1neGikoHsXJeOq8So=
github.com/go-resty/resty/v2 v2.3.0/go.mod h1:UpN9CgLZNsv4e9XG50UU8xdI0F43UQ4HmxLBDwaroHU=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
Expand All @@ -65,13 +67,22 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gotomicro/ego v0.3.6 h1:WkRK03IEgDpkZmkOSvu8PKjHcL9CjdTqPSWY99NWmsk=
github.com/gotomicro/ego v0.3.6/go.mod h1:0FfBqO1mxIcKD92ko5GYp0JyifFjw+dnZzSbwP1JX7M=
github.com/gotomicro/ego v0.3.9 h1:pYcxhLdy39jnFKncsxy4qr4m7bJ8F0q1VY0i3ugCeEY=
github.com/gotomicro/ego v0.3.9/go.mod h1:1X86SNjzc9KLZ5BnywlWeka+WRcIkDqWYPIl2N9SyTU=
github.com/gotomicro/ego v0.3.10-0.20210302032946-8999238e4434 h1:Q5YiCOJa2Dmg6N0IwNErPzLKSxTXRHoQ5X2y5vCOmOU=
github.com/gotomicro/ego v0.3.10-0.20210302032946-8999238e4434/go.mod h1:1X86SNjzc9KLZ5BnywlWeka+WRcIkDqWYPIl2N9SyTU=
github.com/gotomicro/ego v0.3.10-0.20210302035632-d812664ce907 h1:EWYjyAms50BBdP0OhdZGHzQKomyIDKXPhfKAD8dOSn8=
github.com/gotomicro/ego v0.3.10-0.20210302035632-d812664ce907/go.mod h1:1X86SNjzc9KLZ5BnywlWeka+WRcIkDqWYPIl2N9SyTU=
github.com/gotomicro/ego v0.3.10 h1:Ekqykbb7ReNwlx6xQJ9cBc4HS85DJ2Tnp1U+ib8A07s=
github.com/gotomicro/ego v0.3.10/go.mod h1:1X86SNjzc9KLZ5BnywlWeka+WRcIkDqWYPIl2N9SyTU=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
Expand Down Expand Up @@ -113,6 +124,8 @@ github.com/onsi/gomega v1.10.5 h1:7n6FEkpFmfCoo2t+YYqXH0evK+a9ICQz0xcAy9dYcaQ=
github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48=
github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/pierrec/lz4 v2.6.0+incompatible h1:Ix9yFKn1nSPBLFl/yZknTp8TU5G4Ps0JDmguYK6iH1A=
github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
Expand Down Expand Up @@ -152,6 +165,8 @@ github.com/uber/jaeger-client-go v2.23.1+incompatible h1:uArBYHQR0HqLFFAypI7RsWT
github.com/uber/jaeger-client-go v2.23.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
github.com/uber/jaeger-lib v2.3.0+incompatible h1:B/kUIXcj6kIU3WSXgeJ7/uYj94I/r0LDa//JKgN/Sf0=
github.com/uber/jaeger-lib v2.3.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/uber/jaeger-lib v2.4.0+incompatible h1:fY7QsGQWiCt8pajv4r7JEvmATdCVaWxXbjwyYwsNaLQ=
github.com/uber/jaeger-lib v2.4.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
Expand Down
4 changes: 3 additions & 1 deletion eredis/interceptor.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ func fixedInterceptor(compName string, config *config, logger *elog.Component) *
}).
setAfterProcess(func(ctx context.Context, cmd redis.Cmder) error {
var err = cmd.Err()
if err != nil {
// go-redis script的error做了prefix处理
// https://github.com/go-redis/redis/blob/master/script.go#L61
if err != nil && !strings.HasPrefix(err.Error(), "NOSCRIPT ") {
err = fmt.Errorf("eredis exec command %s fail, %w", cmd.Name(), err)
}
return err
Expand Down
Loading