在我看来,我有以下几点
@require_POST
def loadVals(request):
result = //do some heavy calculations
return HttpResponse(json.dumps({"data": result}), content_type="application/json")
现在我添加了一个缓存,这样我就不必一直执行“繁重的计算”。所以新代码看起来像
设置.py
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique-snowflake'
}
}
视图.py
from django.core.cache import get_cache
@require_POST
def loadVals(request):
cache = get_cache('default')
result = cache.get('res')
if result == NONE:
result = //do some heavy calculations
cache.set('res', result, 30)
return HttpResponse(json.dumps({"data": result}), content_type="application/json")
else:
return HttpResponse(json.dumps({"data": result}), content_type="application/json")
相反,我想做的是,即使该缓存已过期,我也想为前端用户节省一些等待时间(因为计算量大),然后只返回最后一个过期值。然后刷新缓存。
我如何能
1)获取过期缓存的值?因为如果缓存过期,cache.get('res') 返回 NONE
2)在 return HttpResponse 语句之后进行调用以刷新缓存值并进行大量计算(其中 return statmenet 刚刚返回过期值)或者可以通过异步调用来做到这一点?