From 50539a71ba992d66fe860f4b46fe7533c4baef84 Mon Sep 17 00:00:00 2001 From: Untone Date: Wed, 1 Oct 2025 17:53:28 +0300 Subject: [PATCH] following-cache-invalidation-fix --- resolvers/follower.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/resolvers/follower.py b/resolvers/follower.py index bb4dde36..d1c132c1 100644 --- a/resolvers/follower.py +++ b/resolvers/follower.py @@ -147,6 +147,11 @@ async def follow( logger.debug("Инвалидируем кеш статистики авторов") await invalidate_authors_cache(entity_id) + # ✅ КРИТИЧНО: Также инвалидируем кеш полных данных для корректной загрузки при рефреше + # Это гарантирует, что после рефреша клиент получит актуальные данные из БД + await redis.execute("DEL", f"author:id:{follower_id}") + logger.debug(f"Инвалидирован кеш полных данных пользователя: author:id:{follower_id}") + # Всегда получаем актуальный список подписок для возврата клиенту if get_cached_follows_method and isinstance(follower_id, int): logger.debug("Получение актуального списка подписок из кэша") @@ -264,6 +269,10 @@ async def unfollow( await redis.execute("DEL", cache_key_pattern) logger.debug(f"Инвалидирован кэш подписок: {cache_key_pattern}") + # ✅ КРИТИЧНО: Также инвалидируем кеш полных данных для корректной загрузки при рефреше + await redis.execute("DEL", f"author:id:{follower_id}") + logger.debug(f"Инвалидирован кеш полных данных пользователя: author:id:{follower_id}") + if get_cached_follows_method and isinstance(follower_id, int): logger.debug("Получение актуального списка подписок из кэша") follows = await get_cached_follows_method(follower_id)