MemoryStore中的max_prune_time是什么?

时间:2015-03-16 12:22:22

标签: ruby caching activesupport

MemoryStore的初始化方法中,max_prune_time可以作为选项传递。

它的目的是什么?

另外, @max_prune_time = options[:max_prune_time] || 2

什么是默认单位?秒?

1 个答案:

答案 0 :(得分:0)

max_prune_time是Rails在释放内存时花费的最长时间(以秒为单位),如果缓存存储空间不足,则删除旧条目。有关详细信息,请参阅prune方法的实现:

def prune(target_size, max_time = nil)
  # ...
  start_time = Time.now
  cleanup
  instrument(:prune, target_size, :from => @cache_size) do
    keys = synchronize{ @key_access.keys.sort{|a,b| @key_access[a].to_f <=> @key_access[b].to_f} }
    keys.each do |key|
      delete_entry(key, options)
      return if @cache_size <= target_size || (max_time && Time.now - start_time > max_time)
    end
  end
  # ...
end