Я пытаюсь настроить истечение срока действия низкоуровневого кеша вручную на Rails 4 в разработке. Срок действия кэша запускается после определенного действия в представлении, что приводит к фоновому заданию (с использованием отложенного задания), которое на самом деле представляет собой пользовательский класс, содержащий код кэширования.
Это триггер:
if request.patch?
@startup_funding = StartupFunding.where(id: params[:id]).first
if @startup_funding.update_attributes(startup_funding_round_params)
redirect_to unique_names_path(@startup_funding.startup.unique_names.unique_name)
GraphUpdate.delay.update
end
end
Это пользовательский класс, который я использую, который удаляет ключ и создает его с нуля:
class GraphUpdate < ActiveRecord::Base
def update
Rails.cache.delete('x')
Rails.cache.fetch('x') do
'test123'
end
end
end
Я активировал кеширование в development.rb: config.action_controller.perform_caching = true
Когда я сначала попробовал это без cache.delete('x')
, мне удалось успешно сохранить «x» как «test», но кажется, что срок действия кеша не истекает.
Не уверен, что пошло не так. Кроме того, если я реализую это в Heroku, нужно ли мне предпринимать какие-либо специальные действия или это работает из коробки?