rails2 memcache expires_in проблема - PullRequest
0 голосов
/ 28 сентября 2011

У меня странная проблема с приложением Rails 2.3.4. Время expires_in устанавливается равным 10 секундам после каждого часа. Но memcache, похоже, запоминает значение даже после очистки кэша.

caches_action :deals, :expires_in => (3600 - Time.now.to_i % 3600) + 10,
  :cache_path => Proc.new { |controller| "blah" }

Вывод Memcache:

<8 new client connection  
<8 get mynamespace:views/show  
>8 END  
<8 set mynamespace:views/show 0 1457 20499  
>8 STORED  
<9 new client connection  
<9 flush_all
>9 OK  
<9 connection closed.  
<8 get mynamespace:views/show  
>8 END  
<8 set mynamespace:views/show 0 1457 20499  
>8 STORED  

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Убедитесь, что вы на самом деле используете memcached, а не механизм кэширования по умолчанию для rails.У вас должно быть что-то вроде этого в вашей среде.Без него по умолчанию используется FileStore или MemoryStore, оба из которых будут с удовольствием кэшироваться, но игнорируют опцию: expires_in.

Благодаря эта статья об основах memcached от Rob Anderton за то, что помог мне разобраться в конце

1 голос
/ 28 сентября 2011

Попробуйте указать значение expires_in в процедуре.

edit: я забыл упомянуть, что вызывал proc с .call в конце.

...