6
Я использую следующее кэширование низкого уровня для пяти самых последних новостных статей в моем приложении Rails:вручную истекаешь кэш низкого уровня
@recent_news = Rails.cache.fetch("recent_news", :expires_in => 1.hour) do
News.order("created_at desc").limit(5)
end
Есть ли способ, чтобы сохранить этот кэше запросов, пока новые новости статья создана? Я думал вручную истекающий кэша с помощью наблюдателя, но не был уверен, есть ли способ действительно сделать это, например:
class NewsObserver < ActiveRecord::Observer
def after_create
#expire recent_news cache
end
end
Я бы также расширил вашу команду fetch, чтобы включить: '(race_condition_ttl: 10)' Это будет использовать новый набор для новостей @recent, запустив один запрос, когда истечет время истечения. Вместо возможности запуска многих запросов, когда он истекает до того, как будет установлен кеш. – Shadoath