NDB로 전환하는 중입니다. 두 모델 세트를 사용하고 있습니다 : 하나는 평범한 이전 google.appengine.ext.db
이고 다른 하나는 새로운 google.appengine.ext.ndb
을 기반으로합니다.NDB에서 특정 모델에 대한 캐시를 삭제하는 방법
읽기 전용으로 NDB 기반 모델을 사용하고 NDB에 내장 된 캐싱을 유지하면서 이전 모델을 사용하여 변경 사항을 저장할 수 있으며 필요할 때 캐시를 NDB로 업데이트 할 필요성을 알립니다. .
예 : db
을 기반으로 한 모델의 변경 사항을 저장하는 동안 NDB의 특정 모델 인스턴스에 대해 캐시를 플러시/삭제할 수 있습니까?
캐싱은 NDB를 사용하는 이유 중 하나 였으므로 캐싱을 비활성화하면 목적을 달성 할 수 없으므로 모델이 거의 변경되지 않으므로 30 초 패널티가 작은 가격입니다. 나는'ndb.get_context() ._ clear_memcache ((ndbkey,)). get_result()'를 사용했지만'ndbkey.delete (use_datastore = False)'가 더 깨끗해 보였다. 고마워! : D –
나는 30 분마다 새로운 값을 생성하고 데이터 저장소를 업데이트하는 실험을 해왔다. 심지어 위의 플래그를 사용하여 약 10 시간 동안 새 값을 성공적으로 저장할 수 있지만 그 후에는 새 값이 될 수 없다. 30 분 후에 다시 가져오고 이전 값을 얻습니다. 수동으로 지우면 새 값이 나타나기 때문에 캐시 문제라고 가정합니다. 어떤 충고? 감사! – Shaun