http / прокси кэширование с memcached - PullRequest
0 голосов
/ 02 октября 2010

Какова общая лучшая практика, чтобы иметь дело с чем-то вроде этого ..

##Post controller

def show
   @post = get_from_memcache
end

##show.html.erb
<div><%= post.body%></div>
<div><%= post.created_at%></div>
<div><%= post.category%></div>
<div><%= Post.favorites_count%></div>

get_from_memcache возвращает объект @post из кэша, срок действия которого практически не истекает, поскольку после создания сообщения его тело, категория, созданные в etc, остаются неизменными.

Однако, на мой взгляд, я вызываю другой метод Favorites_count, который собирает количество избранных сообщений из memcache, и это избранное постоянно меняется.

Это, конечно, упрощение, есть несколько полей, которые меняются.

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

Как мне справиться с этой ситуацией? Так что я могу воспользоваться прокси-сервером, но обновлять некоторые динамические поля на странице? Одна вещь, о которой я могу подумать - это вызовы ajax другим действиям контроллера для обновления этих полей после загрузки страницы, но это может быть ужасно.

Любые другие рекомендации?

1 Ответ

0 голосов
/ 13 октября 2010

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

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

...