2017-02-28 12 views
0

私はサーブレットのエンドポイントを呼び出す必要があります。 サーブレットは巨大なタスクを実行します。仕事をするには数時間かかることがあります。長時間実行されるプロセスに使用できるHTTPClient

これらをすべて保持して、接続を維持してこのエンドポイントを呼び出すhttpクライアントを構築する必要があります。私はその反応に興味がありません。それは単にエンドポイントを呼び出して忘れるべきです。どのクライアントを使うべきですか?

は、私は、サーブレットエンドポイントのいずれかのログが表示されていないので、これは、サーブレットのエンドポイントを呼び出すんApacheのHTTPクライアント

CloseableHttpAsyncClient httpclient = HttpAsyncClients.createDefault(); 
httpclient.start(); 
HttpGet request = new HttpGet(URL);` 
Future<HttpResponse> future = httpclient.execute(request,null); 

てみました。

HttpResponse response = future.get(); 

この行は必須ですか?私は応答をキャプチャする必要はありません。

+0

何時間も生き続けるためにそのHTTP接続に頼っているのではないでしょうか? HTTPが行うように設計されているものではありません。 – Lux

+0

私はHTTP接続が生きている必要はないかもしれません...私はちょうどエンドポイントをトリガーし、忘れる必要があります。仕事を非同期にしましょう。 –

答えて

0

いいえ、必要ありません。

HttpResponse response = future.get(); 

HTTP応答または接続が切断されるまでスレッドをブロックします。チェックアウトFuture.get() javadoc

関連する問題