Найти - Пользователи
Полная версия: Johnny Cache и random
Начало » Django » Johnny Cache и random
1
inlanger
Поставил я на один проект чудо-штуку под названием johnny-cache, которая кеширует в memcached все запросы, которые видит. В итоге вместо 500 запросов при генерации сложных страниц сайт делает всего 3-5 запросов. Но вот беда - заметил, что генерация случайных частей сайта(например случайный товар из магазина) стала совсем не случайной. Единажды закешировав этот запрос довольный johnny-cache игнорирует то, что результат должен быть случайным и выдает каждый раз один и тот же результат. Так вот, вопрос в чем - как мне его заставить не кешировать отдельные запросы?
Chern
Не это ли Вам надо?

http://packages.python.org/johnny-cache/queryset_cache.html#manual-invalidation
inlanger
Возножно, но по докам толко непонятно в какое место ЭТО надо дописать.
Imposeren
А в каком виде у вас рандом? Он же кеширует только запросы, значит у вас там стоит какой-нибудь рандомный ордеринг?

Елси да, то это можно считать багом johny-cache и вручную поправить его исходники, ну плюс баг-репорт отправить.

Где там у вас еще может быть рандом который он кеширует я не представляю
Imposeren
.env/lib/python2.7/site-packages/johnny/cache.py: def sql_key(self, generation, sql, params, order, result_type, using='default'):

Вот куда-то сюда вставить проверку на то что сортировка случайная.
Imposeren
Автор говорит, что случайная сортировка таки кешируется:
Authors tweet
Dr.Livsi
ну а средства самого django для кэширования не пробовали? закешировать наиболее часто используемые но не часто обновляемые представления и запросы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB