我在Google App Engine上使用NDB和Python。在具有相同值的多个实体上更新属性的正确方法是什么? NDB相当于:
UPDATE notifications SET read = true WHERE user_id = 123
。
用例是我有这些扇出通知。特定用户希望将所有通知设置为已读(可能为100)。我知道我可以使用get_async和put_async来获取每个未读通知并将其设置为read,但我担心通过获取可能的100个序列化/反序列化而产生的延迟。
任何建议都非常明确。
答案 0 :(得分:2)
您可以使用map()
Query方法为每个实体调用一个函数。为获得最佳性能,请不要忘记_async
。
但GAE最有用的服务之一是任务队列,特别是在这种情况下。如果您合并Query Cursors和deferred library,则可以轻松处理任意数量的实体。