Jan*_*zny 4 python google-app-engine google-cloud-datastore
我正在转换到NDB,我正在使用两个模型集:一个基于普通旧模式google.appengine.ext.db,一个基于新幻想google.appengine.ext.ndb.
我想将基于NDB的模型用于只读并保留内置到NDB中的缓存,同时能够使用旧模型存储更改(并表示需要在需要时将缓存更新到NDB).
如何在NDB中刷新/清除特定模型实例的缓存,同时根据旧模型保存模型中的更改db?
Gui*_*sum 12
我建议只为那些重复的模型类禁用缓存; 比抱歉更安全.这很容易通过推杆完成
_use_memcache = False
_use_cache = False
Run Code Online (Sandbox Code Playgroud)
在每个ndb.Model子类中(即在属性声明之前或之后).有关此文档的文档位于:https://developers.google.com/appengine/docs/python/ndb/cache#policy_functions(查找最后的表格).
如果您确实只想在使用旧的db.Model子类编写实体时清除缓存,而不是上面的内容,则可以尝试以下操作(假设ent是db.Model子类实例):
ndbkey = ndb.Key.from_old_key(ent.key())
ndbkey.delete(use_datastore=False)
Run Code Online (Sandbox Code Playgroud)
这将从memcache和上下文缓存中删除密钥,但不会从数据存储中删除它.当您尝试使用其NDB密钥(或者甚至当它作为查询结果返回时)将其读回时,它似乎会被删除,直到当前的HTTP请求处理程序完成,并且它将不会使用memcache大约30秒.
| 归档时间: |
|
| 查看次数: |
2708 次 |
| 最近记录: |