Skip to content

Commit e3c7899

Browse files
Merge pull request #25 from mbleandro/main
optimize redis release script
2 parents 02e6350 + 68e91fe commit e3c7899

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

src/yapcache/__about__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.1.20"
1+
__version__ = "0.1.21"

src/yapcache/distlock.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,14 @@ async def release(self):
2929

3030
class RedisDistLock(DistLock):
3131
RELEASE_LOCK_SCRIPT = """
32-
if redis.call("get", KEYS[1]) == false then
33-
return "not_found"
34-
elseif redis.call("get", KEYS[1]) == ARGV[1] then
35-
redis.call("del", KEYS[1])
36-
return "released"
32+
local val = redis.call("get", KEYS[1])
33+
34+
if not val then
35+
return 1
36+
elseif val == ARGV[1] then
37+
return redis.call("del", KEYS[1])
3738
else
38-
return "unmatch"
39+
return 0
3940
end
4041
"""
4142

@@ -86,10 +87,10 @@ async def _acquire(self):
8687

8788
@override
8889
async def release(self):
89-
release_result = await self.client.eval(
90+
released = await self.client.eval(
9091
self.RELEASE_LOCK_SCRIPT, 1, self.resource_name, self.lock_id
9192
) # type: ignore
92-
if release_result in ("released", "not_found"):
93+
if released:
9394
try:
9495
RedisDistLock._EVENTS.pop(self.resource_name).set()
9596
except KeyError:

0 commit comments

Comments
 (0)