优化关闭
This commit is contained in:
@@ -31,6 +31,11 @@ func NewGlobalLock(ctx context.Context, red redis.UniversalClient, uniqueKey str
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取上下文
|
||||||
|
func (l *globalLock) GetCtx() context.Context {
|
||||||
|
return l.ctx
|
||||||
|
}
|
||||||
|
|
||||||
// 获取锁
|
// 获取锁
|
||||||
func (g *globalLock) Lock() bool {
|
func (g *globalLock) Lock() bool {
|
||||||
|
|
||||||
@@ -96,6 +101,7 @@ func (g *globalLock) refresh() {
|
|||||||
g.refreshExec()
|
g.refreshExec()
|
||||||
case <-g.ctx.Done():
|
case <-g.ctx.Done():
|
||||||
t.Stop()
|
t.Stop()
|
||||||
|
g.Unlock()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -114,8 +120,12 @@ func (g *globalLock) refreshExec() bool {
|
|||||||
`
|
`
|
||||||
|
|
||||||
resp, err := g.redis.Eval(g.ctx, script, []string{g.uniqueKey}, g.value, 5).Result()
|
resp, err := g.redis.Eval(g.ctx, script, []string{g.uniqueKey}, g.value, 5).Result()
|
||||||
if resp != "OK" {
|
if err != nil {
|
||||||
opt.logger.Errorf(g.ctx, "global refresh err resp:%+v err:%+v uniKey:%+v value:%+v", resp, err, g.uniqueKey, g.value)
|
opt.logger.Errorf(g.ctx, "global refresh err resp:%+v err:%+v uniKey:%+v value:%+v", resp, err, g.uniqueKey, g.value)
|
||||||
|
}
|
||||||
|
if resp == "ERROR" {
|
||||||
|
opt.logger.Errorf(g.ctx, "global refresh err resp:%+v err:%+v uniKey:%+v value:%+v", resp, err, g.uniqueKey, g.value)
|
||||||
|
g.Unlock()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
|||||||
Reference in New Issue
Block a user