ホームページ >Java >&#&チュートリアル >ジャージ接続の構成とタイムアウトの読み取り
JAX-RSリファレンス実装は、接続を本質的に管理し、タイムアウトを直接読み取ることはありません。 代わりに、使用している基礎となるHTTPクライアントライブラリに依存しています。 最も一般的な選択肢は、HttpClient
(apache httpclientから)およびURLConnection
です。 タイムアウト構成は、ジャージ自体ではなく、クライアントレベルで発生します。 これにより、接続タイムアウト(接続を確立する時間)、ソケットタイムアウト(接続の確立後にソケットからデータを読み取る時刻)、およびリクエストタイムアウト(接続要求の完了時間)を接続することができます。適切に。
ジャージのリクエストが無期限にぶら下がっていないようにするにはどうすればよいですか?HttpClient
RequestConfig
ジャージーリクエストの主な原因は、適切に構成されたタイムアウトがないことです。 タイムアウトがなければ、アプリケーションはサーバーからの応答を無期限に待つことができ、応答しないアプリケーションとリソースの疲労につながる可能性があります。 適切な接続と読み取りタイムアウトを設定することが重要です。 さらに、次の要因を考慮してください。
<code class="java">RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(5000) // 5 seconds .setSocketTimeout(10000) // 10 seconds .setConnectionRequestTimeout(2000) // 2 seconds .build(); CloseableHttpClient httpClient = HttpClients.custom() .setDefaultRequestConfig(requestConfig) .build(); ClientConfig clientConfig = new ClientConfig(); clientConfig.property(ClientProperties.CONNECT_TIMEOUT, 5000); // milliseconds clientConfig.property(ClientProperties.READ_TIMEOUT, 10000); // milliseconds clientConfig.property(ClientProperties.FOLLOW_REDIRECTS, false); clientConfig.register(new LoggingFilter()); Client client = ClientBuilder.newClient(clientConfig).register(new JacksonFeature()); // ... your Jersey client code using 'client' ... httpClient.close();</code>
URLConnection
connectTimeout
ネットワークの問題:readTimeout
ネットワークの問題(接続の低下、ネットワーク速度の低下など)は遅延を引き起こす可能性があります。 タイムアウトは、これらの予測不可能な状況からアプリケーションを保護します。
<code class="java">URL url = new URL("your-url"); URLConnection connection = url.openConnection(); connection.setConnectTimeout(5000); // 5 seconds connection.setReadTimeout(10000); // 10 seconds // ... your code to read from the connection ...</code>
サーバー側の問題:SocketTimeoutException
ゆっくりまたは反応しないサーバーは、無期限の吊り下げを引き起こす可能性があります。 タイムアウトは、アプリケーションがそのようなサーバー側の問題を優雅に処理するのに役立ちます。
通信しているサーバーが正しく構成されており、要求を処理するのに十分なリソースを持っていることを確認してください。 徹底的なコードレビューとテストが不可欠です。
SocketTimeoutException
など)のためにアプリケーションログを調べます。 これらのログは、タイムアウトがいつ、どこで発生するかについての重要な情報を提供します。以上がジャージ接続の構成とタイムアウトの読み取りの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。