I have a rails application, in that I am using simple rails cache. My testing is as follows:
Rails.cache.write(\'temp\',Date.today,:expires_in => 60.seconds)
After some search, I have found one possible reason why the cache is not cleaned after 60 seconds.
Rails.cache.write
which is documented here.write_entry(namespaced_key(name, options), entry, options)
, where your option :expires_in
is one part of the options
argument.The implementation of write_entry has the following condition:
if expires_in > 0 && !options[:raw]
# Set the memcache expire a few minutes in the future to support race condition ttls on read
expires_in += 5.minutes
end
So there are 5 minutes added to your 60 seconds. 2 possible solutions:
:raw => true
, perhaps this will skip the condition, so that your expiry works as suspected.