我们的Python Google AppEngine应用程序中出现了一些过时的Datastore数据。我检查了日志,发现在更新相应数据的请求中出现了以下警告:
在ndb.put()之后,会生成日志记录。没有引发异常,只有这个“无声”的日志输出。然而,该模型并没有写入数据存储器(Datastore)。这种情况连续发生了4次。
准确来说,我不确定该日志是在模型的put()期间还是在GAE保存特定请求的appstats时产生的。此外,该日志指出我们的内存缓存(memcache)已满,但我不清楚它是否是一个问题(缓存难道不应该时不时地变满吗?)。
然而,在所有产生此日志的情况下,ndb.put()都无法将数据写入数据存储器,我无法确定原因。如果ndb.put()失败,我希望能够引发某种错误/异常(我的代码处理这些情况),但警告却是无声的。
有什么建议吗?
Memcache set_multi() error: [':part', ':full']
在ndb.put()之后,会生成日志记录。没有引发异常,只有这个“无声”的日志输出。然而,该模型并没有写入数据存储器(Datastore)。这种情况连续发生了4次。
准确来说,我不确定该日志是在模型的put()期间还是在GAE保存特定请求的appstats时产生的。此外,该日志指出我们的内存缓存(memcache)已满,但我不清楚它是否是一个问题(缓存难道不应该时不时地变满吗?)。
然而,在所有产生此日志的情况下,ndb.put()都无法将数据写入数据存储器,我无法确定原因。如果ndb.put()失败,我希望能够引发某种错误/异常(我的代码处理这些情况),但警告却是无声的。
有什么建议吗?
返回值是一个未设置值的键列表。在完全成功的情况下,该列表应为空。
那么,这些键的值可能无法被 pickle 化吗?此外,NDB 使用原子事务,这可能包括需要将写入 memcache 的写入操作一起完成,以使整个保存动作能够正常工作。 - belteshazzar