在MemoryStore的初始化方法中,max_prune_time
可以作为选项传递。
它的目的是什么?
另外,
@max_prune_time = options[:max_prune_time] || 2
什么是默认单位?秒?
答案 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