多くのサードパーティの REST データポイントからデータをフェッチし、すべてのデータを統合し、データを HTML 形式でレポートするために使用されるサーブレットがあります。次のフローを持つフィルターもあります-
- リクエストがフィルタにヒットしたときにイベント レコードを作成し、eventrecord オブジェクトをリクエストに追加します。
- chain.doFilter を実行する - サーブレットがイベントレコードに詳細を追加できるようにする
- ブラウザーに戻る途中で、filter は eventrecord オブジェクトを取得してログに記録します。
を使用して非同期サーブレットを使用するAsyncContext context = request.getAsyncContext();
と、同じ REST データポイントと通信しますが、データの準備が整うと、すべての REST データポイントが応答するのを待つのではなく、応答ストリームに書き込みます。フィルターをどのように書き直しますか? ? REST データ ポイントからのデータのフラッシュを担当するスレッドにアタッチして、すべてのデータが処理およびフラッシュされると、 eventrecord をログに記録しますか? このようなユースケースを Servlet 3.0 の非同期サーブレットで処理する方法を理解するために研究できる一般的なパターンはありますか? JDK 6.0、Tomcat 7.0 を使用しています。