使用内存存储时,使Rails操作缓存脱机

时间:2013-12-24 17:51:57

标签: ruby-on-rails caching

我正在使用Rails动作缓存内存存储:

# controller
class ProductController < ApplicationController
  caches_action :index

  def index
  end
end

# product sweeper
class ProductSweeper < ActionController::Caching::Sweeper
  observe Product

  def after_create(record)
    Rails.logger.info "expiring"
    expire_action :products, :index
  end
end

# application.rb
config.active_record.observers = :product_sweeper
config.cache_store = :memory_store

当我在开发控制台中查看show动作时,操作会按预期缓存。

当我启动一个开发控制台,并创建一个新产品时,我看到了清扫器/观察者after_create fire。但是缓存未过期。

我认为这是因为Rails内存缓存不是在进程之间全局共享的?由于我计划在后台创建新产品(定期在cron中运行),这是可能的,还是需要从内存存储更改为另一种缓存策略?

0 个答案:

没有答案