Version 1.0.0 (#2)

* feat: add taskiq deduplication

* doc: rework class comment + update README

* fix: make build_deduplication_key private

* fix: raise_on_duplicate is now False by default

* chore: remove pre_execute

* chore: add documentation
This commit is contained in:
d3vyce
2026-05-02 14:49:42 +02:00
committed by GitHub
parent 413c4c42f3
commit b4ee3fce45
21 changed files with 3184 additions and 1 deletions
+18
View File
@@ -0,0 +1,18 @@
from collections.abc import Awaitable
from typing import cast
from redis.asyncio import Redis
async def check_and_delete(redis: Redis, key: str, owner: str) -> bool:
"""Delete *key* only if its value equals *owner*. Returns True if deleted."""
release_script = """
if redis.call('get', KEYS[1]) == ARGV[1] then
return redis.call('del', KEYS[1])
else
return 0
end
"""
released = await cast(Awaitable[int], redis.eval(release_script, 1, key, owner))
return bool(released)