zoukankan      html  css  js  c++  java
  • HttpClient的连接管理器相关

     注意

    public class ClientEvictExpiredConnections {
    
        public static void main(String[] args) throws Exception {
            PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
            // 设置最大连接数
            cm.setMaxTotal(200);
            // 设置每个主机地址的并发数
            cm.setDefaultMaxPerRoute(20);
    
            new IdleConnectionEvictor(cm).start();
        }
    
        public static class IdleConnectionEvictor extends Thread {
    
            private final HttpClientConnectionManager connMgr;
    
            private volatile boolean shutdown;
    
            public IdleConnectionEvictor(HttpClientConnectionManager connMgr) {
                this.connMgr = connMgr;
            }
    
            @Override
            public void run() {
                try {
                    while (!shutdown) {
                        synchronized (this) {
                            wait(5000);
                            // 关闭失效的连接
                            connMgr.closeExpiredConnections();
                        }
                    }
                } catch (InterruptedException ex) {
                    // 结束
                }
            }
    
            public void shutdown() {
                shutdown = true;
                synchronized (this) {
                    notifyAll();
                }
            }
        }
    
    }

     定期关闭无效连接

    public class ClientEvictExpiredConnections {
    
        public static void main(String[] args) throws Exception {
            PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
            // 设置最大连接数
            cm.setMaxTotal(200);
            // 设置每个主机地址的并发数
            cm.setDefaultMaxPerRoute(20);
    
            new IdleConnectionEvictor(cm).start();
        }
    
        public static class IdleConnectionEvictor extends Thread {
    
            private final HttpClientConnectionManager connMgr;
    
            private volatile boolean shutdown;
    
            public IdleConnectionEvictor(HttpClientConnectionManager connMgr) {
                this.connMgr = connMgr;
            }
    
            @Override
            public void run() {
                try {
                    while (!shutdown) {
                        synchronized (this) {
                            wait(5000);
                            // 关闭失效的连接
                            connMgr.closeExpiredConnections();
                        }
                    }
                } catch (InterruptedException ex) {
                    // 结束
                }
            }
    
            public void shutdown() {
                shutdown = true;
                synchronized (this) {
                    notifyAll();
                }
            }
        }
    
    }

    设置请求参数

    public class ClientEvictExpiredConnections {

     

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

            PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();

            // 设置最大连接数

            cm.setMaxTotal(200);

            // 设置每个主机地址的并发数

            cm.setDefaultMaxPerRoute(20);

     

            new IdleConnectionEvictor(cm).start();

        }

     

        public static class IdleConnectionEvictor extends Thread {

     

            private final HttpClientConnectionManager connMgr;

     

            private volatile boolean shutdown;

     

            public IdleConnectionEvictor(HttpClientConnectionManager connMgr) {

                this.connMgr = connMgr;

            }

     

            @Override

            public void run() {

                try {

                    while (!shutdown) {

                        synchronized (this) {

                            wait(5000);

                            // 关闭失效的连接

                            connMgr.closeExpiredConnections();

                        }

                    }

                } catch (InterruptedException ex) {

                    // 结束

                }

            }

     

            public void shutdown() {

                shutdown = true;

                synchronized (this) {

                    notifyAll();

                }

            }

        }

     

    }

  • 相关阅读:
    深入JavaScript之获取cookie以及删除cookie
    js 首次进入弹窗
    jquery 点击加载更多
    express 设置允许跨域访问
    微信小程序之全局储存
    jquery 在页面上根据ID定位(jQuery锚点跳转及相关操作)
    我也想聊聊 OAuth 2.0 —— 基本概念
    一行代码,发送邮件
    【Git使用】强制推送代码到多个远程仓库
    一秒钟生成自己的iOS客户端
  • 原文地址:https://www.cnblogs.com/sh-0131/p/11743028.html
Copyright © 2011-2022 走看看