5

Pythonを使用してgaeアプリに取り組んでいます。このアプリにはクラウドソーシングによるデータ収集システムが含まれており、アプリで使用されるデータは全国のユーザーによって送信されます。現在、デフォルトの割り当て(無料)を使用していますが、アプリの稼働時間を少なくとも99%確保するという問題に直面しています。

課題は、割り当てられた割り当てを使い果たすと、Googleがアプリにルーティングされるそれ以上のリクエストをブロックすることです。最近のテストでは、1人のユーザーが自動投稿スクリプトを作成してCPU割り当てをすぐに使い果たしました。その後、アプリはのみ提供されHTTP 403 Forbidden status code for the request instead of calling a request handlerます。今、私は自動投稿を許可しないようにシステムにパッチを適用しましたが、人間のユーザーが本番時に同様の「ブラックアウト」を引き起こさないことをどのように保証できますか?

Quota APIについては知っていますが、アプリのプロファイリング情報しか得られないと考えています。エラーページやブラックアウトを提供せずに、リクエストの速度(たとえば、1分あたりの割り当ての1分あたり)を遅くする方法が必要です。

助言がありますか?

4

1 に答える 1

5

この問題の一般的な解決策の1つは、タスクをレート制限されたタスクキューに委任することです

例えば:

queue:
- name: mail-throttle
  rate: 2000/d
  bucket_size: 10
- name: background-processing-throttle
  rate: 5/s

このようにして、アプリケーションのすべての部分の使用を制御して、使用可能なクォータの範囲内にとどまらせることができます。

いくつかの注意点:
1。キューはベストエフォートFIFOオーダーを提供します2.タスクのキューイング/実行はいくつかのクォータ
にカウントされます

于 2011-02-08T10:13:18.090 に答える