From 8287b82554ed169b0fd5e3e14685e256e99fb963 Mon Sep 17 00:00:00 2001 From: Untone Date: Thu, 16 Jan 2025 05:46:31 +0300 Subject: [PATCH] invalidate-cache-fix --- cache/cache.py | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/cache/cache.py b/cache/cache.py index 8986476b..c754eeee 100644 --- a/cache/cache.py +++ b/cache/cache.py @@ -19,6 +19,8 @@ DEFAULT_FOLLOWS = { "communities": [{"id": 1, "name": "Дискурс", "slug": "discours", "pic": ""}], } +CACHE_TTL = 300 # 5 минут + # Cache topic data async def cache_topic(topic: dict): @@ -334,23 +336,15 @@ async def get_cached_topic_authors(topic_id: int): async def invalidate_shouts_cache(cache_keys: List[str]): """ Инвалидирует кэш выборок публикаций по переданным ключам. - - Args: - cache_keys: Список ключей кэша для инвалидации - - Example: - await invalidate_shouts_cache([ - "feed", # общая лента - "author_123", # публикации автора - "topic_456" # публикации по теме - ]) """ - from services.redis import redis - for key in cache_keys: cache_key = f"shouts:{key}" try: await redis.execute("DEL", cache_key) logger.debug(f"Invalidated cache key: {cache_key}") + + # Добавляем ключ в список инвалидированных с TTL + await redis.execute("SETEX", f"{cache_key}:invalidated", CACHE_TTL, "1") + except Exception as e: logger.error(f"Error invalidating cache key {cache_key}: {e}")