Как заставить друпал очищать кеш во время запуска крона

Главные вкладки

Аватар пользователя yuriisv yuriisv 18 апреля 2010 в 8:47

Друпал имеет проблему с непомерным увеличением таблиц cache_filter и cache_menu, которые без должного контроля могут достигать нескольких сотен метров при объеме базы 50 метров.
ручная очистка трубоемкая. запуск крона происходит однако кеш полностью не очищается и база продолжает расти.
Если кто имеет решение этой проблемы прошу поделиться.

Комментарии

Аватар пользователя olk olk 18 апреля 2010 в 10:54

"digital_sword" wrote:
и по какому событию кэш будет очищаться? В коде вашего модуля не видно условия запуска крона

хук крон (как это не странно:)) вообще то запускается по крону Smile Условия нужны если вы хотите не в каждый запуск крона запускать ваши действия в хуке крон ...
Ну а крон запускается (если у вас это конечно настроено) операционной системой, в зависимости от настроек crontab

Аватар пользователя Azerot Azerot 18 апреля 2010 в 11:56

Зачем модуль? Создайте страницу с фильтром ввода PHP, пропишите туда этот вызов cache_clear_all()
Затем просто по cron'у (не друпаловскому, а системному) вызывайте этот URL с нужной вам периодичностью.
Если по какой-то причине есть опасение, что злые враги будут делать это за вас, включите проверку реферера, например или проверку IP с которого будет выполняться данное действо. Или ещё проще - поставьте проверку случайно сгенеренного ключа скажем в 32 символа, который должен идти доп. параметром к URL, типа:
http://mysite.com/clearcache.php?key=neWOILkq2129rkNDKKWwlmdq