2017-08-16 7 views
1

restTemplateで利用可能なreadTimeoutを理解しようとしていますが、それは何ですか?春休みテンプレートreadTimeOut

タイムアウトの例外が発生するまでに要求に要する合計時間はありますか?

答えて

2

あなたは次のようにRestTemplateに読み取りタイムアウトを定義することができます。

Xミリ秒のreadTimeout考える
HttpComponentsClientHttpRequestFactory clientRequestFactory = new HttpComponentsClientHttpRequestFactory(); 
// set the read timeot, this value is in miliseconds 
clientRequestFactory.setReadTimeout(500); 

RestTemplate restTemplate = new RestTemplate(clientRequestFactory); 

を、長いXミリ秒以上かかることRestTemplateインスタンスを通じて行われたすべての要求はになりますResourceAccessExceptionjava.net.SocketTimeoutExceptionを「Read timed out」という例外メッセージでラップします。

タイムアウトが実際に要求が最初にそのソケットに当たると、これらのいずれかが最初に来るとき停止したときにクロックが開始RestTemplateによってラップさHttpClientインスタンス内部のソケットコネクタによって実装されます。要求が完了するか、またはreadTimeoutです到達した。

これは、設定されたreadTmeoutよりも長い時間がかかるリクエストは、タイムアウト例外で失敗することを意味します。

2

限り私は知っていたとして、restTemplateでは、我々は1)ConnectionRequestTimeout タイムアウト の3種類を持っているこれは

2)これはとの間の接続を確立するためのミリ秒単位のタイムアウトです のConnectionTimeout

のConnectionManagerから接続を取得するためのミリ秒単位のタイムアウトですソースと宛先

3)ReadTimeout これは、応答/結果が宛先エンドポイントから返されることを期待するミリ秒単位のタイムアウトです。

関連する問題