mirror of
https://github.com/go-eagle/eagle.git
synced 2025-09-27 04:45:58 +08:00
23 lines
461 B
Go
23 lines
461 B
Go
package lock
|
|
|
|
var (
|
|
// lockscript lua script for acrequire a lock
|
|
lockLuaScript = `
|
|
if redis.call("GET", KEYS[1]) == ARGV[1] then
|
|
redis.call("SET", KEYS[1], ARGV[1], "PX", ARGV[2])
|
|
return "OK"
|
|
else
|
|
return redis.call("SET", KEYS[1], ARGV[1], "NX", "PX", ARGV[2])
|
|
end
|
|
`
|
|
|
|
// unlockscript lua script for release a lock
|
|
unlockLuaScript = `
|
|
if redis.call("GET", KEYS[1]) == ARGV[1] then
|
|
return redis.call("DEL", KEYS[1])
|
|
else
|
|
return 0
|
|
end
|
|
`
|
|
)
|