1
我正在做一个NDB查询,这似乎只是获取部分对象。对于模型,我已经关闭了缓存,以防万一。然而,当我看到它们填充在数据存储查看器中时,许多属性都返回无。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()返回旧的东西。
你确定前端正在改变现有实体的属性而不是创建新实体吗? (如果它意外地创建了新实体,这可以解释为什么你会看到新的值,但是你的程序看到了旧值。)也许你可以显示编辑实体的代码? (或者只是说“不,我检查过,没有发生”)。 – 2012-04-09 18:30:34
我只能看到数据存储查看器中已更改的实体(仅用于测试的两个实体) – 2012-04-09 19:39:57
您确定使用该任务没有任何意义队列?每当实体发生更改时,您都可以从前端插入任务,而不是通过后端轮询更改。 – 2012-04-10 05:42:11