prune(target_size, max_time = nil)
public
To ensure entries fit within the specified memory prune the cache by
removing the least recently accessed entries.
# File activesupport/lib/active_support/cache/memory_store.rb, line 114
def prune(target_size, max_time = nil)
return if pruning?
@pruning = true
begin
start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)
cleanup
instrument(:prune, target_size, from: @cache_size) do
keys = synchronize { @data.keys }
keys.each do |key|
delete_entry(key, **options)
return if @cache_size <= target_size || (max_time && Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time > max_time)
end
end
ensure
@pruning = false
end
end