searchable
All checks were successful
Deploy on push / deploy (push) Successful in 4m21s

This commit is contained in:
2024-02-25 16:43:04 +03:00
parent 4b83f5d0f5
commit 2222f6fc19
5 changed files with 40 additions and 65 deletions

26
services/cache.py Normal file
View File

@@ -0,0 +1,26 @@
from functools import wraps
from dogpile.cache import make_region
# Создание региона кэша с TTL 300 секунд
cache_region = make_region().configure('dogpile.cache.memory', expiration_time=300)
# Декоратор для кэширования методов
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