#ruby-on-rails
#ruby-on-rails
Вопрос:
Rails.cache.fetch(ranking_cache_key, expires_in: 12.hours) do
data
end
Я хочу кэшировать данные ранжирования в Rails.cache. Сразу после этого кода я уверен, что смогу кэшировать данные, потому что они существуют? метод возвращает true. Но я выполнил команду «rails runner» во второй раз, я не получаю никаких данных кеша из приведенного ниже кода.
Rails.cache.fetch(ranking_cache_key)
Как я могу кэшировать данные в течение 12 часов? Я использую Rails 5.2.1
и в файле среды разработки
config.action_controller.perform_caching = true
config.cache_store = :memory_store, { size: 64.megabytes, expires_in: 12.minutes }
config.public_file_server.headers = {
'Cache-Control' => "public, max-age=#{2.days.to_i}"
}
Комментарии:
1. Есть ли у вас эта строка в вашем
development.rb
файле?if Rails.root.join('tmp', 'caching-dev.txt').exist?
2.
memory_store
не разделяет кэшированные данные между процессами, попробуйте по-другомуcache_store
? см guides.rubyonrails.org/v5.2 /…