2016-05-17 26 views
1

春のブートサーバーのタイムアウトを15秒に設定したいとします。明らかにするには:サーバーが15秒以内に応答しない場合、エラー応答が返されます(Herokuで起こるようなものですが、そこには30秒しかありません)。 どうすればいいですか?春の起動時にタイムアウトを要求する

私の問題は、実際にはこのサービスがゲートウェイであり、別のサービスを呼び出していることが原因です。応答に時間がかかることがあり、そのサービスのタイムアウトを制御できません。私はSDKファイルを使用してそのサーバーを呼び出すので、発信呼び出しを制御することはできません。 すべての発信通話に対してグローバルにタイムアウトを設定できる方法はありますか?

は、あなたが余分なスレッドにあなたのライブラリをラップして、直接、タイムアウトでそのスレッドに参加することができますあなたの

+1

解決方法http://stackoverflow.com/questions/34852236/spring-boot-rest-api-request-timeout最初の問題? – GandalfIX

+0

私はそれを試みましたが、実際には機能しません。新しい 'HttpComponentsClientHttpRequestFactory()'を呼び出す例外でアプリケーションがクラッシュする私はこれを見つけましたhttp://stackoverflow.com/questions/13837012/spring-resttemplate-timeout、3回目の回答は* Spring Boot *を参照しています。必要に応じてプログラムが実行されますが、要求は停止しません与えられたミリ秒後に。私はいくつかの構成が欠けていますか?それ以上の例/コード/ヘルプは高く評価されます。 – user2339344

答えて

1

ありがとうございます。 例を参照してくださいhttp://www.journaldev.com/1024/java-thread-join-example-with-explanation

+0

それは素晴らしいトリックですが、それはトリックです。これを行うためのインフラストラクチャまたはフレームワークの方法ではありません。特に、私のサービスには紹介するAPIがたくさんあり、そのような呼び出しはスレッド内で実行するようにラップする必要があります。私はそれを考えましたが、私はより根本的なものを探しています。 – user2339344

+0

@ user2339344実際、それは完全に基本的な解決策です。それはキックインし、仕事をきれいにします。おそらく、スレッドプールやいくつかの素晴らしい 'CompletableFuture'の使用のためにいくつかの' ExecutorService'ロジックを追加するかもしれませんが、それだけです。そのSDKに迷惑をかけたら、おそらくもっと問題が起こるでしょう。 – bekce

関連する問題