1

我正在做一个 NDB 查询,它似乎只获取部分对象。对于模型,我已经关闭了缓存,以防万一。但是,当我看到它们在数据存储查看器中填充时,许多属性会返回无。

这是本地开发服务器(并已部署),查询由后端进程完成。

注意:清除内存缓存没有帮助。

注意:如果我导致后端重新启动,它将开始提取正确的数据。

基本上:

后端每 X 秒开始查询模型的实例

前端导致模型实例发生变化

后端继续查看实例的原始版本,直到重新启动

后端代码非常简单:

while 1:
    time.sleep(2)
    q = None
    res = None
    q = core.Agent.query()
    res = q.fetch(10)
    for a in res:
        logging.error("%s" % a.to_dict())

前端更改了一些属性(并显示在查看器中),但后端只会显示旧值。似乎过滤器将根据正确的值进行过滤,但 fetch() 返回旧的东西。

4

1 回答 1

1

您需要清除循环顶部的上下文缓存,例如

while 1:
  ndb.get_context().clear_cache()
  <rest of your code>
于 2012-04-09T21:17:51.820 回答