[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кэширование сгенерированных постов
or4ek
Здравствуйте!

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

Так вот встал вопрос - а что делать, если постов накопится много, а нужно будет запретить смайлы или добавить новые бб-теги (к примеру). Кэша будет предостаточно, и что мне потом с ним делать? Можно, конечно, в админке сделать ф-цию в админке "Обновить кэш", но на это уйдет уйма ресурсов, что не есть хорошо.

Буду признателен, если кто подтолкнет меня в нужном направлении, как реализовать кэш постов smile.gif (гуглил, ничего не нашел)



Спустя 9 минут, 40 секунд (21.08.2011 - 13:08) neadekvat написал(а):
На счет кэша постов - многовато места будет занято. Плюс при редактирвоании придется проверять кэш, обновлять. Да и что такое "большой"?

Возможно, проще сделать так: бб-теги превращаются в настоящие теги и так хранится в базе (при выводе, соответственно, никаких лишних телодвижений), а когда редактируют - заменять теги на бб-теги.
Кажется, на этом и подобных форумах так и реализовано.

Спустя 20 минут, 56 секунд (21.08.2011 - 13:29) or4ek написал(а):
Ну при редактировании поста пользователю необходимо отдать в том виде, в котором он ввел, а при конвертировании хтмл в бб на 100% этого реализовать не получится, така как это очень сложная задача. И потом, это не решает вопрос добавления новых тегов - придется все заново парсить и сохранять в бд - та же самая ресурсоемкая ф-ция "Обновить кэш"...

Спустя 4 минуты, 52 секунды (21.08.2011 - 13:34) Nikitian написал(а):
Храните в бд 2 варианта записи: с бб-тегами и распарсенный вариант. При редактировании обновляйте оба. При выводе используйте распарсенный.

Спустя 6 минут, 38 секунд (21.08.2011 - 13:41) or4ek написал(а):
Nikitian
а если накопится 100 000 постов, а я решу, допустим, запретить вывод смайлов, и мне все, что сохранено в распарсенном виде, надо будет заново парсить... Как с этим быть?

Спустя 10 минут, 31 секунда (21.08.2011 - 13:51) Nikitian написал(а):
or4ek
Не запрещать для уже опубликованных постов. Закон же обратной силы не имеет smile.gif

Спустя 26 минут, 39 секунд (21.08.2011 - 14:18) or4ek написал(а):
Наверное, я буду делать так:
  • Кэшировать все сообщения
  • При выводе сообщения на фронтенде проверять, сущ-ет ли кэш данного поста, если да, то подцепляю его, если нет - генерю на лету и сохраняю
  • В админке предусмотрю ф-цию "Обновить кэш" как полностью, так и по разделам (чтоб сразу жралось не так много ресурсов)
  • и потом, может быть, реализую обновление устаревшего кэша по крону (раз в неделю, к примеру)

Вот... думаю ничего на первое время)

Спустя 4 минуты, 19 секунд (21.08.2011 - 14:22) or4ek написал(а):
Всем большое спасибо за советы!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.