dogpiled-cache-authors

This commit is contained in:
2024-03-12 16:18:07 +03:00
parent 625836afee
commit 6064f0326a
2 changed files with 43 additions and 49 deletions

View File

@@ -1,26 +1,11 @@
from functools import wraps
from dogpile.cache import make_region
# Создание региона кэша с TTL 300 секунд
cache_region = make_region().configure('dogpile.cache.memory', expiration_time=300)
from settings import REDIS_URL
# Декоратор для кэширования методов
def cache_method(cache_key: str):
def decorator(f):
@wraps(f)
def decorated_function(*args, **kwargs):
# Генерация ключа для кэширования
key = cache_key.format(*args, **kwargs)
# Получение значения из кэша
result = cache_region.get(key)
if result is None:
# Если значение отсутствует в кэше, вызываем функцию и кэшируем результат
result = f(*args, **kwargs)
cache_region.set(key, result)
return result
return decorated_function
return decorator
# Создание региона кэша с TTL
authors_cache_region = make_region()
authors_cache_region.configure(
'dogpile.cache.redis',
arguments={'url': f'{REDIS_URL}/1'},
expiration_time=3600, # Cache expiration time in seconds
)