fix: include positional args in the deduplication fingerprint (#81)

This commit is contained in:
d3vyce
2026-07-29 10:13:58 +02:00
committed by GitHub
parent 56e82689f8
commit e75b9f3f20
6 changed files with 51 additions and 7 deletions
+10 -1
View File
@@ -154,12 +154,21 @@ class RedisDeduplicationMiddleware(TaskiqMiddleware):
message.task_name,
missing,
)
if message.args:
logger.warning(
"Task %s was called with positional arguments but uses "
"deduplication_key_fields; positional arguments are excluded "
"from the fingerprint.",
message.task_name,
)
kwargs = {k: v for k, v in message.kwargs.items() if k in key_fields}
args: list[Any] = []
else:
kwargs = message.kwargs
args = message.args
try:
payload = json.dumps(
{"task": message.task_name, "kwargs": kwargs},
{"task": message.task_name, "args": args, "kwargs": kwargs},
sort_keys=True,
)
except TypeError: