2

各有権者に電子メールを送信することを含む、GAE を使用して投票アプリケーションを開発しています。最初のテストで、1 分あたりのメール クォータを超えてしまい、次の例外が発生しました。

OverQuotaError: The API call mail.Send() required more quota than is available.

この短期的な問題は、課金を有効にすることで解決できました。これにより、1 分あたりのメール クォータが大幅に増加しますが、今後このような例外が発生しないようにする正しい方法は何ですか? アプリが大成功を収め、より大きなクォータを超えた場合、この例外が発生すると大きな問題になります。

これはフォームの処理後に行われるため、ブロックを除いて、メールを送信するための呼び出しを試みたくありません。ユーザーが POST への応答を待つ必要はありません。

これはタスク キューの適切な使用例ですか? その場合、電子メールのバッチを送信するリクエストをタスク キューに入れますか?それとも、電子メールを送信する各リクエストをタスク キューに入れますか? 前者は、POST の処理が高速になるという点で優れているようです。どちらの方法でも、各メールの送信間に遅延を追加して、高速に送信されないようにし、クォータを超えないようにすることはできますか?

4

2 に答える 2

3

はい、queue.yamlのプロパティを変更することでメールの送信速度を制限できるため、タスクキューに最適です。

タスクごとに1つの電子メールが最適であるため、タスクが失敗して再試行された場合、バッチのすべてではなく、失敗した1つだけが再試行されます。

于 2011-03-08T23:24:02.750 に答える
0

はい。タスクキューを使用します。タスクが電子メールを送信している場合は、1分間に実行するタスクの数を決定できます。タスクが失敗した場合、実行を再試行します。

于 2011-03-09T03:44:34.670 に答える