0

一定期間 (たとえば 1 秒) に受信したすべての要求を結合して、それらをバッチで処理することは可能ですか。

基本的に、req-resp の各ペアを個別に提供するのではなく、「http サーブレット リクエスト レスポンス」マップのリストを処理する方法を探しています。HttpServletReqRespMapList の抽象化が共通の状態を共有でき、appengine 環境で役立つことを願っています。

Google appengine 環境でこれを実装するための理想的な方法、アイデア、または既知の実装を共有してください。

4

2 に答える 2

2

このようなマッピングを使用してキャッシュを実装し、コストを削減したいと考えています。ti が真である場合は、他のアプローチを検討する必要があります。

  1. DataStore または MemCache を使用して、リクエスト パラメータに基づいて前処理されたデータをキャッシュできます。
  2. WAR ファイルの一部としてアップロードされた静的ファイルの使用を試みることができます。静的ファイルは CPU 時間を必要としないため、コストを削減する最良の方法です。

バッチ処理は、Java Web アプリケーションでは不自然です。通常、問題は別の方法で解決できます。

リクエスト間で共通の状態が必要な場合、問題はより複雑になります。AppEngine アーキテクチャは、インスタンス オンデマンドの概念に基づいています。したがって、どのインスタンスがリクエストを処理するかは保証されません。これは、静的データを共有できないことを意味します。そのため、状態は、DataStore/MemCache や FileService などの永続的なストレージを使用してのみ共有できます。ただし、各テクノロジーの遅延を考慮する必要があるため、使用する場合は注意してください。

このようなアーキテクチャの最後の理由は、受け取ったリクエストに基づいて実装する必要があるワークフローです。ワークフローが必要な場合は、http://code.google.com/p/appengine-pipeline/ を参照してください。Task API の実行フロー制御が可能です。

于 2012-10-04T21:46:25.230 に答える
1

いいえ、そうではありません。また、サーブレット標準では、このためのメカニズムは提供されていません。

なぜあなたはこれをしたいのですか?

于 2012-10-04T09:29:17.333 に答える