gpt4 book ai didi

python - 使用 ndb 在 google app engine datastore 上更新多个实例的最便捷方式

转载 作者:行者123 更新时间:2023-11-28 19:09:26 25 4
gpt4 key购买 nike

我需要在 Google App Engine 上更新 Foo 类的一些实例使用 ndb 的数据存储.

这是我目前所拥有的:

while more:
foo_instances, more_cursor, more = Foo.query().fetch_page(
20, start_cursor=more_cursor)
for foo in foo_instances:
bar = foo.bar.get() # foo.bar is a Key to a Bar instance.
bar.updated = True

ndb.put_multi(foo_instances)

和(tasklet 友好):

foo_iterator = Foo.query().iter()
while (yield foo_iterator.has_next_async()):
foo = foo_iterator.next()
bar = foo.bar.get() # foo.bar is a Key to a Bar instance.
bar.updated = True

yield bar.put_async()

我计划在 Push Queue 中执行此代码我认为在超时之前有 10 分钟的窗口的任务。

哪一个是执行任务并避免超时或内存问题的正确方法(如果有的话)?有几千个 Foo 类型的实例。

最佳答案

如果您计划使用推送队列,为什么不将工作分成更小的部分(例如,根据您的光标大小)并让每个部分由不同的任务处理?这样您就不会遇到可扩展性问题,因此可以自由选择您想要/喜欢的解决方案。

Google appengine: Task queue performance 中讨论的解决方案类似(但用推送队列替换延迟库)。

关于python - 使用 ndb 在 google app engine datastore 上更新多个实例的最便捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42307313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com