Кеш и комментарии.
При добавление комментария и работе кеша (встроенного) комментарий не появится на странице пока не будет обновлен кеш. Есть ли варианты сбрасывать кеш только той страницы на которой был добавлен новый комментарий? Быть может есть какие-нибудь модули специально для этого?
Подскажите пожалуйста
Комментарии
не правда. при добавлении комментария срабатывает cache_clear_all()
<?php
function modulename_comment(&$a1, $op) {
if ($op == 'insert') {
cache_clear_all(url('node/' . $a1->nid, array('absolute' => true)), 'cache_page');
}
}
?>
У меня это почему-то не работает. Комментарии добавляю через админа и смотрю в другом браузере как аноним - комментариев нет. Кеш на 5 минут включен (нормальный)
Вы уверены, что это работает?
Спасибо за код, но он не работает
Кеш сбрасывал
та же самая штука и с зарегистрированным пользователем. Если зарегистрированный пользователь добавляет коммент, то аноним его не видит.
Может у одного меня такая штука?
Если стандартная система кеширования Друпала сбрасывает весь кеш при добавлении комментария, то зачем еще дополнительно очищать кеш текущего коммента? Тут явно лишние действия.
NightL, в настройках /admin/settings/performance ты, наверное, указал минимальное время жизни кеша равным 5 минутам?
Да все верно минимальное 5 минут (удобно для тестирования просто) сейчас попробую выставить несколько часов посмотрю на поведение комментариев и кеша
upd: результат ровно тот же (кеш сутки) Комментарий новый есть, а кеш не обновляется. Ни как не могут понять это частный случай или нет?
Попробовал на другом друпале (другая установка на локале) практически девственная. Результат тот же. Итого это не частный случай а комментарии действительно появятся новые только после сброса кеша или по истечению времени жизни кеша что неприемлемо ни разу. Или же надо где-то что крутить.. но ни разу подобное не попадалось и поиск ничего не дал. А я еще думаю чего это многие системы кеш не используют и генерируют по пол секунде.. я в шоке.. не может же быть все так плохо
зачем ты меня об этом спрашиваешь?
Проверил систему на сервере. Кеш не сбрасывается при добавлении комментариев. Вообще не сбрасывается.
Посоветуйте пожалуйста - что делать?!
Еще же можно в списке выбора минимального времени жизни кеша указать первый вариант, когда минимального времени вообще нет. Пробовали?
Хотя сам я обычно не пользуюсь стандартным кешированием Друпала.
Так если я укажу, что минимального времени кеша нет это равносильно отключить кеш совсем ведь а этого я как раз очень не хочу делать. без кеша будет плохо серверу практически сразу.
А при использовании других модулей позволяющих организовать кеширование подобной проблемы с комментариями нет?
поставил модуль cacherouter включил кеш в файловую систему все работает и даже работает сброс кеша после добавления комментария. Проблема только в что сброс кеша происходит весь и невольно мысль, а если на сайте тысяч 10 страниц? сброс такого кол-ва файлов и такое кол-во обращений к жесткому диску хорошо ли? Как представлю 10к мелких файлов или вообще 50 так сервер жалко.. Измерил скорость хоть и на локале, но не впечатлило 150мс в сравнении со стандартным кешем 100мс или со вторым стандартным 50-70мс.
Попробовал переключить кеш в базу в итоге ничего не заметил скорость генерирования осталась прежней. походу где-то надо крутить, а где не ясно.
Как все сложно..
Нет таких готовых модулей, которые будут кешировать что-то так, как Вам хочется. Стандартное кеширование годится только для полностью статических сайтов.
А для создания нормального кеширования на Друпале достаточно знать API кеширования Друпала.
попробовал еще раз модуль boost и конечно скорость работы потрясающая. В сравнении с cacherouter тоже файловый кеш скоро отдачи страницы из кеша возросла в 9 ! раз стало примерно 17мс и также отлично работает сброс кеша после добавления комментария и радует, что сбрасывается только страница с комментариями это конечно минус динамических фишек и даже таких простых вещей как отображения кол-во комментариев в превью, но скорость работы огромный плюс. для шаред хостингов это однозначно лучший вариант
Ну, если "динамические фишки" не нужны, то юзайте на здоровье модуль boost:) А я воздержусь от него:)
Динамика конечно же нужна, но разумная. Разные рюшечки типа последних комментариев этого не надо. Кеш понятно дело компромисс между статичным сайтом и динамичным в случае с подобным модулем эта динамика станет слегка запоздалой часов на 5 при сбросе полного кеша. А так вроде бы на первый взгляд модуль подходит, а вот на второй взгляд уже покажет время каково оно.
И нравится мне сильно когда страница отдается менее чем за 0.01 секунду и сильно не нравится когда без кеша пол секунды так как получается я жду сервер)
А вот кеш встроенный разочаровал хотя с начала был им доволен пока не увидел сию штуку. жалко. если бы его доработать чтобы оно сбрасывало страниц на которых работает динамика цены бы ему не было, но это уже из разряда будущих разработок если сайт становится успешным и посещаемым и переходит на выделенный сервер
осталось узнать как быть с зарегистрированными пользователями
Нужно создавать свою стратегию кеширования на основе API.
Это да, но в начале хотелось бы что-то попроще и побыстрее типа кнопку нажал и поехало