Форум сайта python.su
Поставил я на один проект чудо-штуку под названием johnny-cache, которая кеширует в memcached все запросы, которые видит. В итоге вместо 500 запросов при генерации сложных страниц сайт делает всего 3-5 запросов. Но вот беда - заметил, что генерация случайных частей сайта(например случайный товар из магазина) стала совсем не случайной. Единажды закешировав этот запрос довольный johnny-cache игнорирует то, что результат должен быть случайным и выдает каждый раз один и тот же результат. Так вот, вопрос в чем - как мне его заставить не кешировать отдельные запросы?
Офлайн
Офлайн
Возножно, но по докам толко непонятно в какое место ЭТО надо дописать.
Офлайн
А в каком виде у вас рандом? Он же кеширует только запросы, значит у вас там стоит какой-нибудь рандомный ордеринг?
Елси да, то это можно считать багом johny-cache и вручную поправить его исходники, ну плюс баг-репорт отправить.
Где там у вас еще может быть рандом который он кеширует я не представляю
Офлайн
.env/lib/python2.7/site-packages/johnny/cache.py: def sql_key(self, generation, sql, params, order, result_type, using='default'):
Вот куда-то сюда вставить проверку на то что сортировка случайная.
Офлайн
Автор говорит, что случайная сортировка таки кешируется:
Authors tweet
Отредактировано Imposeren (Апрель 20, 2012 18:33:42)
Офлайн
ну а средства самого django для кэширования не пробовали? закешировать наиболее часто используемые но не часто обновляемые представления и запросы.
Офлайн