Используя FastAPI и FastAPICache, мы можем использовать заголовок Cache-Control, чтобы разрешить принудительное вычисление ответа API или его возврат из кэша.
Для конечной точки в целом, если это позволяет политика Cache-Control, если тот же объект запроса отображается снова, он может быть возвращен из кэша.
Я хочу аналогичного поведения на функциональном уровне. Для некоторой функциональной панели в моей конечной точке foo (потенциально вложенной и в другом файле/модуле), которая принимает только один аргумент a, как она может определить, разрешено ли ей возвращаться из кэша?
Очевидно, мы могли бы сделать что-то вроде bar(a=request.a,cache_control=request.headers.cache_control), но я думаю что-то вроде:
В main.py
@router.post("/foo")
def foo(request: Request):
return bar(a=request.body.a)
В utils.py
def bar(a: int):
# something like:
if fastapi.current_context().cache_control().no_cache():
val = some_expensive_computation(a)
else:
val = cache.get(a, some_expensive_computation(a))
if not fastapi.current_context().cache_control().no_store():
cache.set(a, val)
return val
Подробнее здесь: https://stackoverflow.com/questions/785 ... pplication
Лучший способ распространить политику управления кешем в приложении FastAPI? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Есть ли простой способ распространить свойства объекта в качестве функций событий?
Anonymous » » в форуме Javascript - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Поток запуска Oauth 2.0 для Youtube Data Api v3 не работает – проблема с кешем?
Anonymous » » в форуме Python - 0 Ответы
- 42 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Какой подход следует использовать для решения проблемы с кешем при весенней загрузке?
Anonymous » » в форуме JAVA - 0 Ответы
- 33 Просмотры
-
Последнее сообщение Anonymous
-