Я использую кэширование действий в своем приложении Rails 3 для Heroku с опцией: expires_in.Я попытался вызвать expire_action, непосредственно в контроллере после обновления и внутри свипера.Кажется, ничто не истекает должным образом.
В моем контроллере:
caches_action :embed, :if => Proc.new { |c| c.request.format.js? || c.request.format.rss? }, :expires_in => 5.minutes
В моем действии:
expire_action :action => :embed, :format => :js
И я также попытался сделать это в уборщике, пытаясь использовать генератор URL дляполучить точный ключ:
expire_action obj_embed_url(@obj.unique_token)
Интересно, если Heroku использует слой кэша Varnish, срок действия которого вы не можете истечь.(Срок действия кэша истекает через 5 минут, потому что я вижу обновление содержимого.) Похоже, что у меня правильно настроена надстройка memcached (с использованием гема Dalli; config.cache_store =: dalli_store), и я вижусоответствующие переменные среды ...
$ heroku config |grep MEM
MEMCACHE_PASSWORD => xxxxxxxxxxxxxxxxx
MEMCACHE_SERVERS => xxx.xxx.northscale.net
MEMCACHE_USERNAME => appxxxxxx%40heroku.com
Чего мне здесь не хватает?