私のプロジェクトでは、特定のリモートサーバーAが別のアプリケーションBから呼び出されます。アプリケーションBはXノードに分散されています。アプリケーションBには、PoolingHttpClientConnectionManagerとHttpClientが作成される場所が1つあります。しかし、HttpClient.execute()メソッドは、アプリケーションBのコードベース上にあります。apache HttpClientを呼び出す
遠隔測定目的のために、各XノードがリモートサーバーAに行った呼び出しの並行回数を追跡します。呼び出しを追跡するためにカウンタをインクリメントおよびデクリメントするクライアントをStatsDします。アイデアは、コールの開始時にカウンタをインクリメントし、コールが成功したときにカウンタをインクリメントし、失敗したりタイムアウトしたりすることです。
私の最初の考えは、HttpRequestInterceptorとHttpResponseInterceptorを使用してカウンタを増減することです。ただし、タイムアウトの場合は応答がないため、HttpResponseInterceptorは呼び出されません。
この問題の回避策はありますか?それとも良い解決策がありますか?私はHttpClient.execute()を行うメソッドに注釈を付けることができれば問題は簡単だと知っていますが、コードベースのサイズを考えると高価なソリューションです。したがって、私はより良い選択肢を探しています。前もって感謝します。