Кэшированные данные не истекают в приложении Sinatra / memcached - PullRequest
1 голос
/ 23 сентября 2011

У меня есть приложение Sinatra на Heroku, и я извлекаю данные из многих сторонних API и сохраняю их в memcache, чтобы ускорить время загрузки.

Но данные не обновляются: данные, которые загружаются в первый раз после включения плагина, остаются в memcache все время и не устаревают.

Вот части моего кода:

set :cache, Dalli:client.new

configure do
    set :cache_default_expiry, 300
end    

def get_apidata()
    apidata = settings.cache.get('apidata')  
    if apidatadata.nil?
       # getting data from API
       settings.cache.set('apidata',apidata)

Где в моем коде проблема, почему не истекает срок хранения кэшированных данных?

1 Ответ

1 голос
/ 01 октября 2011

Из моих тестов set :cache_default_expiry не работает.Вместо этого вы можете сделать следующее:

set :cache, Dalli::Client.new(ENV['MEMCACHE_SERVERS'],
                             :username => ENV['MEMCACHE_USERNAME'],
                             :password => ENV['MEMCACHE_PASSWORD'],
                             :expires_in => 300)
...