From 574ce205c4dffe8594446545e1e0a173030b370c Mon Sep 17 00:00:00 2001 From: Dylan Thacker-Smith Date: Fri, 30 Sep 2016 22:32:23 -0400 Subject: [PATCH] Move delete failure detection to the cache fetcher. Different cache stores return a different value from their delete methods, so we don't try to detect whether it failed, since a falsey return value could mean the key wasn't present or it couldn't send the command to the server. This is less ambiguous for write, which is used by the cache fetcher, so failure detection was moved into there. --- lib/identity_cache/cache_fetcher.rb | 4 +++- lib/identity_cache/fallback_fetcher.rb | 4 +++- lib/identity_cache/memoized_cache_proxy.rb | 4 +--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/identity_cache/cache_fetcher.rb b/lib/identity_cache/cache_fetcher.rb index 26514267..e5c54824 100644 --- a/lib/identity_cache/cache_fetcher.rb +++ b/lib/identity_cache/cache_fetcher.rb @@ -11,7 +11,9 @@ def write(key, value) end def delete(key) - @cache_backend.write(key, IdentityCache::DELETED, :expires_in => IdentityCache::DELETED_TTL.seconds) + result = @cache_backend.write(key, IdentityCache::DELETED, expires_in: IdentityCache::DELETED_TTL.seconds) + IdentityCache.logger.debug { "[IdentityCache] delete #{ result ? 'recorded' : 'failed' } for #{key}" } + result end def clear diff --git a/lib/identity_cache/fallback_fetcher.rb b/lib/identity_cache/fallback_fetcher.rb index ca85729e..bc64331f 100644 --- a/lib/identity_cache/fallback_fetcher.rb +++ b/lib/identity_cache/fallback_fetcher.rb @@ -11,7 +11,9 @@ def write(key, value) end def delete(key) - @cache_backend.delete(key) + result = @cache_backend.delete(key) + IdentityCache.logger.debug { "[IdentityCache] delete for #{key}" } + result end def clear diff --git a/lib/identity_cache/memoized_cache_proxy.rb b/lib/identity_cache/memoized_cache_proxy.rb index 27bbce17..7b1e5e6d 100644 --- a/lib/identity_cache/memoized_cache_proxy.rb +++ b/lib/identity_cache/memoized_cache_proxy.rb @@ -36,9 +36,7 @@ def write(key, value) def delete(key) memoized_key_values.delete(key) if memoizing? - result = @cache_fetcher.delete(key) - IdentityCache.logger.debug { "[IdentityCache] delete #{ result ? 'recorded' : 'failed' } for #{key}" } - result + @cache_fetcher.delete(key) end def fetch(key)