2011-02-08 8 views
4

pythonを使用してgaeアプリケーションに取り組んでいます。このアプリには、群集に由来するデータ収集システムが含まれています。アプリで使用されるデータは、全国のユーザーから送信されます。現在、デフォルトのクォータ(無料)を使用していますが、アプリの稼働時間を少なくとも99%確保するという問題に直面しています。割り当てられたGoogle App Engine Quotasの枯渇をプログラム的に防ぎます

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

私はクォータAPIについて知っていますが、私のアプリにプロファイリング情報しか与えられないと思っています。エラーページを表示せずにリクエストレートを遅くする方法が必要ですまたはブラックアウト。

提案がありますか?

+0

に向かってカウントし、ベストエフォート型のFIFO注文を配信しますあなたがその分のクォータを超えていたら?または、クォータに近づくにつれて、各リクエストを長くしたり長くしたりする計画はありますか? –

+0

請求にサインアップする。取得するトラフィックの量に十分な毎日の請求限度額を設定します。 –

+0

@Nickアプリは非営利(コミュニティ援助のもの)なので、請求処理は当面中止です。 – nemesisfixx

答えて

5

この問題の一般的な解決策の1つは、タスクをレート制限taskqueueに委任することです。例えば

:あなたが利用できるクォータの範囲内にとどまるためにそれらを強制的に、アプリケーションのすべての部分の使用を制御することができます。このように

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

警告のカップル:
1.キューは、タスクの
2.エンキュー/実行は、あなたの代わりに、エラーメッセージのユーザーに表示されるでしょうどのようないくつかのquotas

+0

おかげさまで、タスクキューについて知りませんでしたが、このサービスで使用されているリソースが依然として私の "請求書"にルーティングされているかどうかだけは疑問です(無料の割り当て割り当てを使用していても)。 – nemesisfixx

+0

@mcnemesis:タスクキューのタスクは引き続きクォータにカウントされます。彼らは(とりわけ)リソース集中型のタスクを実行する速度を制限します。 – shang

+0

@shang:確かに、それは私の最初の懸念を引き起こしたレートの限界です。クォータの使用については、私のユーザーの気持ちはまだありません。 -/ – nemesisfixx

関連する問題