diff options
author | Jeremy Daer <jeremydaer@gmail.com> | 2015-10-09 13:57:01 -0700 |
---|---|---|
committer | Jeremy Daer <jeremydaer@gmail.com> | 2015-10-09 13:58:49 -0700 |
commit | 0450642c27af3af35b449208b21695fd55c30f90 (patch) | |
tree | f75f1680efee7eaf9fbf90f31594c230fd363130 /activesupport/lib | |
parent | 5c7e99257818c84ce4c70a34c2411cb671bcf995 (diff) | |
parent | edd33c08d98723ae9bb89cf7f019277117ed6414 (diff) | |
download | rails-0450642c27af3af35b449208b21695fd55c30f90.tar.gz rails-0450642c27af3af35b449208b21695fd55c30f90.tar.bz2 rails-0450642c27af3af35b449208b21695fd55c30f90.zip |
Merge pull request #21631 from RobinClowers/fix-cache-instrumentation
Fix cache fetch instrumentation
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/cache.rb | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/activesupport/lib/active_support/cache.rb b/activesupport/lib/active_support/cache.rb index 8253a76383..3996f583c2 100644 --- a/activesupport/lib/active_support/cache.rb +++ b/activesupport/lib/active_support/cache.rb @@ -277,13 +277,18 @@ module ActiveSupport options = merged_options(options) key = namespaced_key(name, options) - cached_entry = find_cached_entry(key, name, options) unless options[:force] - entry = handle_expired_entry(cached_entry, key, options) + instrument(:read, name, options) do |payload| + cached_entry = read_entry(key, options) unless options[:force] + payload[:super_operation] = :fetch if payload + entry = handle_expired_entry(cached_entry, key, options) - if entry - get_entry_value(entry, name, options) - else - save_block_result_to_cache(name, options) { |_name| yield _name } + if entry + payload[:hit] = true if payload + get_entry_value(entry, name, options) + else + payload[:hit] = false if payload + save_block_result_to_cache(name, options) { |_name| yield _name } + end end else read(name, options) @@ -556,13 +561,6 @@ module ActiveSupport logger.debug(yield) end - def find_cached_entry(key, name, options) - instrument(:read, name, options) do |payload| - payload[:super_operation] = :fetch if payload - read_entry(key, options) - end - end - def handle_expired_entry(entry, key, options) if entry && entry.expired? race_ttl = options[:race_condition_ttl].to_i |