1

db.put() を使用して、大量のデータを GAE にロードする関数を実行しました。ただし、書き込みクォータに達すると、クォータ超過の例外が発生しました。アプリを実行してデータを再確認したところ、返されたデータは確かに不完全でした。そのため、クォータが再び使用可能になったときに、いくつかのインデックスからデータ ローダーを再度実行しました (そのため、同じデータを何度も書き込むことはありません)。

ここに問題があります: データ ローダーを手動で (何度も何度も) 実行した後、アプリが動作するために必要なすべてのデータが既にそこにあるように見えますが、最初にデータをロードしたときは割り当て超過の例外がありました。

したがって、私の質問は具体的には次のとおりです。GAEでクォータを超えた関数は、クォータが再び利用可能になるまでキューに入れられますか、それとも終了しますか?

プロジェクトの背景: 友人と私は検索システムを構築しています。検索システムのデータベースが必要なので、データベースを GAE にロードします。

4

1 に答える 1

0

データストアに多くの値を追加しているときに書き込みクォータに達した場合、残りの値はどこにも保存されず、再試行する必要があります。データストア管理者は、データストアの統計に基づいてエンティティの数を表示しますが、更新には遅延が生じます。公式には最大 24 時間と記載されていますが、この以前の投稿で述べたように、さらに長くなる可能性があります。そのため、最近アップロードされたエンティティがデータストアに存在するかどうかを確認するために、データストア管理者に頼ることはできず、最近追加した特定のエンティティが存在するかどうかをクエリして確認する必要があります。または、各 db.put() に対して返されるエンティティ キー値を読み取り、最後に返された値を使用して、最後に正常に格納されたエンティティを確認できます。

于 2013-07-03T13:32:38.767 に答える