forked from MirrorHub/synapse
Propogate stale cache errors to calling functions
This commit is contained in:
parent
63b1eaf32c
commit
62126c996c
1 changed files with 4 additions and 3 deletions
|
@ -183,8 +183,8 @@ class CacheDescriptor(object):
|
|||
try:
|
||||
cached_result_d = cache.get(*keyargs)
|
||||
|
||||
observed = cached_result_d.observe()
|
||||
if DEBUG_CACHES:
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def check_result(cached_result):
|
||||
actual_result = yield self.function_to_call(obj, *args, **kwargs)
|
||||
|
@ -195,9 +195,10 @@ class CacheDescriptor(object):
|
|||
cached_result, actual_result,
|
||||
)
|
||||
raise ValueError("Stale cache entry")
|
||||
cached_result_d.observe().addCallback(check_result)
|
||||
defer.returnValue(cached_result)
|
||||
observed.addCallback(check_result)
|
||||
|
||||
return cached_result_d.observe()
|
||||
return observed
|
||||
except KeyError:
|
||||
# Get the sequence number of the cache before reading from the
|
||||
# database so that we can tell if the cache is invalidated
|
||||
|
|
Loading…
Reference in a new issue