У меня есть приложение django rest, в котором есть функция, которая вычисляет что-то, используя некоторые внешние данные (из другого сервиса). Я хочу избежать загрузки, если не требуется.Эти данные регулярно меняются, но одинаковы для одного запроса.Поэтому я хочу кэшировать результат этой функции (так как она вызывается несколько раз в течение одного запроса) на время ровно одного запроса.Я сталкивался с библиотекой https://github.com/tvavrys/django-memoize/, которая кэширует результаты функции, но я могу указать только время, а не контекст, после которого кеш должен быть признан недействительным.
Одна возможность, которую я нашел разумной, -каким-то образом зарегистрировать хук, который очищает кеш после каждого запроса (используя delete_memoized
), но я не нашел способа зарегистрировать такой хук.
Поэтому мой вопрос: возможно ли либо
- выполнить некоторый код после обработки ответа (→ очистить кеш) или
- сказать django кэшировать результат функции ровно для одного запроса (используя какую-то другую библиотеку?)