mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-10-11 20:43:44 +08:00
增加集群部署支持,修复定时任务分组添加后选项不显示
This commit is contained in:
59
server/internal/library/hgrds/lock/consts.go
Normal file
59
server/internal/library/hgrds/lock/consts.go
Normal file
@@ -0,0 +1,59 @@
|
||||
// Package lock
|
||||
// @Link https://github.com/bufanyun/hotgo
|
||||
// @Copyright Copyright (c) 2023 HotGo CLI
|
||||
// @Author Ms <133814250@qq.com>
|
||||
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
|
||||
package lock
|
||||
|
||||
import (
|
||||
"github.com/gogf/gf/v2/errors/gerror"
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
// 加锁脚本
|
||||
lockScript = `
|
||||
local token = redis.call('get', KEYS[1])
|
||||
if token then
|
||||
return 0
|
||||
else
|
||||
local setResult = redis.call('setex', KEYS[1], ARGV[2], ARGV[1])
|
||||
return setResult
|
||||
end
|
||||
`
|
||||
|
||||
// 续约脚本
|
||||
renewalScript = `
|
||||
if redis.call('get',KEYS[1])==ARGV[2] then
|
||||
return redis.call('expire',KEYS[1],ARGV[1])
|
||||
end
|
||||
return 0
|
||||
`
|
||||
|
||||
// 解锁脚本
|
||||
unlockScript = `
|
||||
if redis.call("get",KEYS[1]) == ARGV[1] then
|
||||
return redis.call("del",KEYS[1])
|
||||
else
|
||||
return 2
|
||||
end
|
||||
`
|
||||
)
|
||||
|
||||
const (
|
||||
// DefaultTTL 锁默认过期时间
|
||||
DefaultTTL = time.Second * 10
|
||||
// DefaultTryLockInterval 默认重试获取锁间隔时间
|
||||
DefaultTryLockInterval = time.Millisecond * 100
|
||||
)
|
||||
|
||||
var (
|
||||
// ErrLockFailed 加锁失败
|
||||
ErrLockFailed = gerror.New("lock failed")
|
||||
// ErrTimeout 加锁超时
|
||||
ErrTimeout = gerror.New("timeout")
|
||||
// ErrNotCaller 锁持有者不是当前实例
|
||||
ErrNotCaller = gerror.New("lock not held by the caller")
|
||||
// ErrNotExist 锁不存在
|
||||
ErrNotExist = gerror.New("lock does not exist")
|
||||
)
|
Reference in New Issue
Block a user