Когда именно cached_property сбрасывается? - PullRequest
0 голосов
/ 14 февраля 2019

В настоящее время я использую @cached_property во избежание дублирования доступа к БД.

class MyModel(models.Model):
    ...

    @cached_property
    def my_opts(self):
        options = Option.objects.filter(...)
        return options
    ...

Я использовал этот шаблон фронта свойства.

Он отлично работает в shell & test.Но когда я тестировал в браузере, я точно не знал, когда кешированное свойство сбрасывается.

Когда я обновляю свой браузер, свойство сбрасывается.Тогда полезно ли использовать кэшированное свойство в этом сценарии?И когда именно сбросит значение cached_property в аспекте на стороне клиента?

Заранее спасибо!

1 Ответ

0 голосов
/ 14 февраля 2019

Документация довольно ясно говорит об этом:

Кэшированный результат будет сохраняться до тех пор, пока это делает экземпляр, поэтому, если экземпляр передается и функция впоследствии вызываетсябудет возвращен кешированный результат.

Каждый раз, когда вы обновляете свой браузер, вы воссоздаете экземпляр, что делает кэш недействительным.Если вы хотите, чтобы кеш сохранялся в течение нескольких запросов, вам следует рассмотреть возможность использования инфраструктуры кеша .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...