1

クラスターで実行されている PBS pro によって生成された電子メールを受信するために、GAE のアプリを使用しています。アプリは、電子メールを解析してクラスター ジョブの統計を取得し、簡単なレポートを生成します。

問題は、クラスターで大量のジョブが開始されると、アプリが数秒で 1000 件以上のメールでヒットする可能性があることです。リクエストを処理するために、膨大な数のインスタンスが起動されます。許容レイテンシーを数秒程度に設定することでこれを制御できますが、これにより、レポートを含むアプリのフロント ページを提供するときに目に見えるレイテンシーが発生する可能性があります。

個別の URL ごとに許容できる待ち時間を設定する方法はありますか?

/_ah/mail/user@myapp.appspotmail.com

より多くのインスタンスを起動せずに高レイテンシーになる可能性がありますが、他の URL のいずれかが高レイテンシーを引き起こしている場合、より多くのインスタンスが起動されますか?

-- アンドリュー

4

2 に答える 2

3

私の知る限り、ルートに基づいて管理コンソールで最大レイテンシを設定する方法はありません。ただし、できることは、メールを受信したら、メールのテキストを taskqueue タスクに渡すことです。これらは、非常に詳細にレート制限できます。Python を使用している場合はdeferredモジュールを使用できるため、これらの taskqueue タスク用に個別のハンドラーを作成する必要はありません。私は GAE で Java を使用した経験がないので、それに相当する Java があるかどうかはわかりません。

于 2012-12-12T16:48:53.383 に答える
0

いいえ、URLごとにアプリのレイテンシ設定を設定することはできません。

問題を軽減する1つの方法は、メールハンドラーに最小限の作業を行わせることです。したがって、メールハンドラですべての解析とレポート生成を行う代わりに、時間のかかるすべての操作をタスクキューに移動する必要があります。このようにして、メールハンドラーはすぐに戻り、一度により多くのリクエストを処理できるようになります。

タスクキューを使用すると、並列タスクの実行を制御できるため、必要なインスタンスの数を微調整できます。

于 2012-12-12T19:33:30.750 に答える