集册 Java实例教程 从连接池apache http客户端收回过期和空闲的连接

从连接池apache http客户端收回过期和空闲的连接

欢马劈雪     最近更新时间:2020-01-02 10:19:05

542
从连接池apache http客户端中退出过期和空闲连接
/** 
来 自 
n o w  j a v a  . c o m
**/

/*

 * --------------------------------------------------------------------

 * Licensed to the Apache Software Foundation (ASF) under one

 * or more contributor license agreements.  See the NOTICE file

 * distributed with this work for additional information

 * regarding copyright ownership.  The ASF licenses this file

 * to you under the Apache License, Version 2.0 (the

 * "License"); you may not use this file except in compliance

 * with the License.  You may obtain a copy of the License at

 *

 *   http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing,

 * software distributed under the License is distributed on an

 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

 * KIND, either express or implied.  See the License for the

 * specific language governing permissions and limitations

 * under the License.

 * --------------------------------------------------------------------

 *

 * This software consists of voluntary contributions made by many

 * individuals on behalf of the Apache Software Foundation.  For more

 * information on the Apache Software Foundation, please see

 * <http://www.apache.org/>.

 *

 */

package org.apache.http.examples.client;


import java.util.concurrent.TimeUnit;


import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;

import org.apache.http.pool.PoolStats;

import org.apache.http.util.EntityUtils;/* 来 自 时代Java公众号 - nowjava.com*/


/**

 * Example demonstrating how to evict expired and idle connections

 * from the connection pool.

 */

public class ClientEvictExpiredConnections {


    public static void main(String[] args) throws Exception {

        PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();

        cm.setMaxTotal(100);

        CloseableHttpClient httpclient = HttpClients.custom()

                .setConnectionManager(cm).evictExpiredConnections()

                .evictIdleConnections(5L, TimeUnit.SECONDS).build();

        try {

            // create an array of URIs to perform GETs on

            String[] urisToGet = { "http://hc.apache.org/",

                    "http://hc.apache.org/httpcomponents-core-ga/",

                    "http://hc.apache.org/httpcomponents-client-ga/", };


            for (int i = 0; i < urisToGet.length; i++) {

                String requestURI = urisToGet[i];

                HttpGet request = new HttpGet(requestURI);


                System.out.println("Executing request " + requestURI);


                CloseableHttpResponse response = httpclient

                        .execute(request);

                try {

                    System.out

                            .println("----------------------------------------");

                    System.out.println(response.getStatusLine());

                    EntityUtils.consume(response.getEntity());

                } 
展开阅读全文