私の見解では、私は次のことを持っています
@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 が期限切れの値を返したところ) または、非同期呼び出しを介してこれを行うことができますか?