私のデータストアに種類が Dog のエンティティがあるとします。すべての犬に対して簡単な操作を実行したいのですが、たくさんの犬がいます。
all_dogs = Dog.all(keys_only=True)
print dogs.count(100000) #returns 79234, or some equally large number
私が単にこれを行うと:
for dog_key in all_dogs:
k = dog_key
私が理解していることは、次のことと同じです:
for dog_key in all_dogs.run(batch_size=20):
k = dog_key
次に、次のようなデータストア タイムアウト例外が発生します。
Timeout: The datastore operation timed out, or the data was temporarily unavailable.
batch_size を 1000 に増やしても問題はありません。
操作タイマーが開始する原因とタイムアウトまでの時間は? タイムアウトにならないようにするにはどうすればよいですか?
この場合、batch_size を大きくすると効果がありましたが、何百万もの Dog エンティティがあった場合はどうなるでしょうか? 操作を実行するときにタイムアウトにならないようにするにはどうすればよいですか?