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)