Как отключить кэш запроса Django?

Насколько я знаю, вкладка окна поиска зависят открытого файла, Вы идете при вызывании поисковой функции. Так, например, если Ваш на файле web.xml, это откроет "plug-in search" вместо "поиска Java".

Редактирование: существует способ вызвать открытую вкладку по умолчанию путем присвоения ярлыка на "действие" Поиска Файла в предпочтительной панели "Ключей".

22
задан ssc 11 December 2009 в 09:39
поделиться

3 ответа

Кэширование запросов применяется только в QuerySet. Другими словами, если вы дважды оцените один и тот же объект набора запросов, кеширование запросов будет работать. Но если вы выполняете запрос каждые 10 секунд, предположительно, это происходит через cron, который каждый раз порождает новый процесс, поэтому Django никоим образом не будет кэшировать что-либо.

Возможно, что собственный кеш вашей базы данных вступит в действие. если вы постоянно выполняете один и тот же запрос. Вам следует изучить документацию к вашей СУБД, чтобы узнать, как с этим правильно работать.

9
ответ дан 29 November 2019 в 03:57
поделиться

Ссылка, которую вы предоставляете на документацию Django, подразумевает, что следующее:

>>> print [e.headline for e in Entry.objects.all()]
>>> print [e.pub_date for e in Entry.objects.all()]

создает два запроса к базе данных, в то время как:

>>> queryset = Poll.objects.all()
>>> print [p.headline for p in queryset] # Evaluate the query set.
>>> print [p.pub_date for p in queryset] # Re-use the cache from the evaluation.

использует кеш запросов, поскольку вы получаете доступ к той же оценке результаты.

6
ответ дан 29 November 2019 в 03:57
поделиться

Большое спасибо за ваши ответы, ваши ответы заставили меня сделать несколько шагов назад и переосмыслить.

Чтобы протестировать кеширование на уровне СУБД, я отказался от Django и использовал сценарий оболочки, который у меня так или иначе был под рукой, чтобы периодически запрашивать данные из базы данных SQLite, в то время как я добавлял данные во втором сеансе оболочки. Новые данные появлялись в периодических запросах сразу после того, как я их добавил, так что здесь не было кеширования запросов.

Это сузило круг вопросов до части Django. Используемый код не очень сложен, и небольшой вывод журнала, а обзор кода выявил проблему: запрос, используемый для получения набора запросов, который в свою очередь используется для создания суммы MD5, имел ошибку и всегда был пустым. Следовательно, сумма MD5 всегда была одинаковой. Действительно выглядел как кешированный результат - данные меняются, но набор запросов остается прежним. Проблема не проявлялась в приложении, поскольку для получения отображаемых там данных использовался другой запрос.

Извлеченный урок: если вы полностью озадачены, сделайте шаг назад и пересмотрите свои предположения.

Еще раз спасибо ! : -)

1
ответ дан 29 November 2019 в 03:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: