2010-10-01 2 views
0

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

##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 из кэша, который в принципе не истекают, потому что один раз пост , тело, категория, созданное на и т. д., остается неизменным.

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

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

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

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

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

ответ

0

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

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

Смежные вопросы