0

私は、db.put()をいくつか呼び出してリストにデータのバッチを追加しようとしました。しかしそれは時々タイムアウトします。Google App Engineでput()を使用して500を超える項目をデータストアに追加するにはどうすればよいですか?

誰かがヒントをお持ちですか?

+0

データストアに追加したい連絡先がたくさんあるxmlファイルがあります。 Contactモデルはphone nr、nameなどのいくつかの属性で構成されています。私は現在、xmlファイルをContactエンティティのリストに解析し、データストアにロードしています。 – bluegray

答えて

2

複数のputを使用し、タイムアウトが発生した場合は、より小さいバッチサイズを使用します(たとえば、それらを半分にする)。 1人のユーザーリクエストで500以上のエンティティを追加している場合は、おそらく間違っていると思われます。

+1

ええ、書き込みはGAEで非常に高価です。おそらくあなたがしたいことを正確に詳述し、プロセスを最適化できるかどうかを確認します。 –

0

GoogleがApp Engineに提供するbulkloadクライアント(bulkload_client source)のバッチサイズはデフォルトでバッチサイズが10に設定されているため、バッチのサイズに非常に注意する必要があります。

私は最近、数千のオブジェクトを削除していて、db.delete()に渡すことができる最大のものは約400であることがわかりました。しかし、時にはタイムアウトになり、私は350に下がります。削除や入れ替えはもっと高価です。

関連する問題