|
@@ -1,6 +1,7 @@
|
|
|
package cn.com.qmth.examcloud.web.cloud;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
import org.apache.http.impl.client.HttpClientBuilder;
|
|
|
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
|
@@ -117,6 +118,7 @@ public class CloudClientConfiguration {
|
|
|
Boolean poolEnable = PropertyHolder.getBoolean("examcloud.rpc.pool.enable", true);
|
|
|
|
|
|
int maxTotal = PropertyHolder.getInt("examcloud.rpc.pool.maxTotal", 200);
|
|
|
+ long timeToLive = PropertyHolder.getLong("examcloud.rpc.pool.timeToLive", 60);
|
|
|
int defaultMaxPerRoute = PropertyHolder.getInt("examcloud.rpc.pool.defaultMaxPerRoute", 10);
|
|
|
int connectTimeout = PropertyHolder.getInt("examcloud.rpc.connectTimeout", 2000);
|
|
|
int readTimeout = PropertyHolder.getInt("examcloud.rpc.readTimeout", 60000);
|
|
@@ -124,11 +126,13 @@ public class CloudClientConfiguration {
|
|
|
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
|
|
|
|
|
|
if (poolEnable) {
|
|
|
- PoolingHttpClientConnectionManager poolingConnectionManager = new PoolingHttpClientConnectionManager();
|
|
|
- poolingConnectionManager.setMaxTotal(maxTotal);
|
|
|
- poolingConnectionManager.setDefaultMaxPerRoute(defaultMaxPerRoute);
|
|
|
+ PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(
|
|
|
+ timeToLive, TimeUnit.SECONDS);
|
|
|
+ cm.setValidateAfterInactivity(1000);
|
|
|
+ cm.setMaxTotal(maxTotal);
|
|
|
+ cm.setDefaultMaxPerRoute(defaultMaxPerRoute);
|
|
|
|
|
|
- httpClientBuilder.setConnectionManager(poolingConnectionManager);
|
|
|
+ httpClientBuilder.setConnectionManager(cm);
|
|
|
}
|
|
|
|
|
|
HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();
|