ndbを使用して、Google App Engine データストアでFooクラスのインスタンスを更新する必要があります。Google App Engineデータストアの複数のインスタンスを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)
と(優しいタスクレット):
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()
私は10を持っていると信じているPush Queueタスクでこのコードを実行することを計画していますタイムアウトする前に分ウィンドウ。
タスクを実行してタイムアウトやメモリの問題を回避するための正しいアプローチ(もしあれば)はどれですか? Foo型のインスタンスは数千種類あります。
サイドノート:第1の解決策では、 'foo_instances'ではなく' bar'インスタンスを追跡して 'put_multi'したいでしょうか? –