Кеш и комментарии

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

Аватар пользователя NightL NightL 9 октября 2010 в 16:52

Кеш и комментарии.
При добавление комментария и работе кеша (встроенного) комментарий не появится на странице пока не будет обновлен кеш. Есть ли варианты сбрасывать кеш только той страницы на которой был добавлен новый комментарий? Быть может есть какие-нибудь модули специально для этого?

Подскажите пожалуйста

Комментарии

Аватар пользователя xxandeadxx xxandeadxx 9 октября 2010 в 17:07

"NightL" wrote:
При добавление комментария и работе кеша (встроенного) комментарий не появится на странице пока не будет обновлен кеш.

не правда. при добавлении комментария срабатывает cache_clear_all()

"NightL" wrote:
Есть ли варианты сбрасывать кеш только той страницы на которой был добавлен новый комментарий?

<?php
function modulename_comment(&$a1$op) {
    if (
$op == 'insert') {
        
cache_clear_all(url('node/' $a1->nid, array('absolute' => true)), 'cache_page');
    }
}
?>
Аватар пользователя NightL NightL 9 октября 2010 в 17:09

У меня это почему-то не работает. Комментарии добавляю через админа и смотрю в другом браузере как аноним - комментариев нет. Кеш на 5 минут включен (нормальный)

Вы уверены, что это работает?

Аватар пользователя NightL NightL 9 октября 2010 в 17:34

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

Может у одного меня такая штука?

Аватар пользователя Sinkora Sinkora 9 октября 2010 в 19:30

"xxandeadxx" wrote:
не правда. при добавлении комментария срабатывает cache_clear_all()

"xxandeadxx" wrote:

<?php
function modulename_comment(&$a1$op) {
    if ($op == 'insert') {
        cache_clear_all(url('node/' . $a1->nidarray('absolute' => true))'cache_page');
    }
}
?>


Если стандартная система кеширования Друпала сбрасывает весь кеш при добавлении комментария, то зачем еще дополнительно очищать кеш текущего коммента? Тут явно лишние действия.

NightL, в настройках /admin/settings/performance ты, наверное, указал минимальное время жизни кеша равным 5 минутам?

Аватар пользователя NightL NightL 9 октября 2010 в 19:56

Да все верно минимальное 5 минут (удобно для тестирования просто) сейчас попробую выставить несколько часов посмотрю на поведение комментариев и кеша

upd: результат ровно тот же (кеш сутки) Sad Комментарий новый есть, а кеш не обновляется. Ни как не могут понять это частный случай или нет?

Аватар пользователя NightL NightL 9 октября 2010 в 20:06

Попробовал на другом друпале (другая установка на локале) практически девственная. Результат тот же. Итого это не частный случай а комментарии действительно появятся новые только после сброса кеша или по истечению времени жизни кеша что неприемлемо ни разу. Или же надо где-то что крутить.. но ни разу подобное не попадалось и поиск ничего не дал. А я еще думаю чего это многие системы кеш не используют и генерируют по пол секунде.. я в шоке.. не может же быть все так плохо

Аватар пользователя NightL NightL 9 октября 2010 в 20:25

Проверил систему на сервере. Кеш не сбрасывается при добавлении комментариев. Вообще не сбрасывается.

Посоветуйте пожалуйста - что делать?!

Аватар пользователя Sinkora Sinkora 9 октября 2010 в 22:39

Еще же можно в списке выбора минимального времени жизни кеша указать первый вариант, когда минимального времени вообще нет. Пробовали?

Хотя сам я обычно не пользуюсь стандартным кешированием Друпала.

Аватар пользователя NightL NightL 9 октября 2010 в 23:10

Так если я укажу, что минимального времени кеша нет это равносильно отключить кеш совсем ведь а этого я как раз очень не хочу делать. без кеша будет плохо серверу практически сразу.

А при использовании других модулей позволяющих организовать кеширование подобной проблемы с комментариями нет?

Аватар пользователя NightL NightL 9 октября 2010 в 23:52

поставил модуль cacherouter включил кеш в файловую систему все работает и даже работает сброс кеша после добавления комментария. Проблема только в что сброс кеша происходит весь и невольно мысль, а если на сайте тысяч 10 страниц? сброс такого кол-ва файлов и такое кол-во обращений к жесткому диску хорошо ли? Как представлю 10к мелких файлов или вообще 50 так сервер жалко.. Измерил скорость хоть и на локале, но не впечатлило 150мс в сравнении со стандартным кешем 100мс или со вторым стандартным 50-70мс.

Попробовал переключить кеш в базу в итоге ничего не заметил скорость генерирования осталась прежней. походу где-то надо крутить, а где не ясно.

Как все сложно..

Аватар пользователя Sinkora Sinkora 10 октября 2010 в 0:19

Нет таких готовых модулей, которые будут кешировать что-то так, как Вам хочется. Стандартное кеширование годится только для полностью статических сайтов.

А для создания нормального кеширования на Друпале достаточно знать API кеширования Друпала.

Аватар пользователя NightL NightL 10 октября 2010 в 0:20

попробовал еще раз модуль boost и конечно скорость работы потрясающая. В сравнении с cacherouter тоже файловый кеш скоро отдачи страницы из кеша возросла в 9 ! раз стало примерно 17мс и также отлично работает сброс кеша после добавления комментария и радует, что сбрасывается только страница с комментариями это конечно минус динамических фишек и даже таких простых вещей как отображения кол-во комментариев в превью, но скорость работы огромный плюс. для шаред хостингов это однозначно лучший вариант

Аватар пользователя NightL NightL 10 октября 2010 в 0:39

Динамика конечно же нужна, но разумная. Разные рюшечки типа последних комментариев этого не надо. Кеш понятно дело компромисс между статичным сайтом и динамичным в случае с подобным модулем эта динамика станет слегка запоздалой часов на 5 Smile при сбросе полного кеша. А так вроде бы на первый взгляд модуль подходит, а вот на второй взгляд уже покажет время каково оно.

И нравится мне сильно когда страница отдается менее чем за 0.01 секунду и сильно не нравится когда без кеша пол секунды так как получается я жду сервер)

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

Аватар пользователя Sinkora Sinkora 10 октября 2010 в 1:46

"NightL" wrote:
осталось узнать как быть с зарегистрированными пользователями

Нужно создавать свою стратегию кеширования на основе API.