for循环中调用CloseableHttpClient代码未执行完毕就自动停止

问题背景:我在一个for循环中需要每次循环时调用高德地图的api进行计算2点之间的距离。有300条数据,试了很多次大概在80多条或100多条时,for循环就自动停止了不继续循环了。

以下是刚开始有BUG的http工具类中的get请求方法的代码:

    /**
     * 带参数的get请求
     *
     * @param url
     * @param param
     * @return String
     */
    public static String doGet(String url, Map<String, String> param) {
        // 创建Httpclient对象
        CloseableHttpClient httpclient = HttpClients.createDefault();

        String resultString = "";
        CloseableHttpResponse response = null;
        try {
            // 创建uri
            URIBuilder builder = new URIBuilder(url);
            if (param != null) {
                for (String key : param.keySet()) {
                    builder.addParameter(key, param.get(key));
                }
            }
            URI uri = builder.build();
            // 创建http GET请求
            HttpGet httpGet = new HttpGet(uri);
            // 执行请求
            response = httpclient.execute(httpGet);
            // 判断返回状态是否为2
5.1. 公共需求 ◼ 需要使用 Apache HttpComponents Client 实现接口调用; ◼ A 系统接口不稳定,接口调用失败需要有重试机制,若重试 3 次仍无法正确响应,则 回滚已同步的数据,取消本次同步任务; ◼ 获取 Token 接口,在 Token 过期前不允许重复调用; ◼ 数据同步过程中,出现错误需要能够回滚数据,不能产生脏数据。 5.2. 实现 B 系统与 A 系统企业信息的定时同步,具体要求如下: ◼ 分页调用接口文档中“获取客户列表”接口,将全量数据存储到 customer 表中; ◼ 每 10 分钟同步一次企业信息; ◼ A 系统企业出现增,删,改,B 系统都能够同步; ◼ A 系统数据有重复,需要去重; 5.3. 实现 B 系统与 A 系统监测设备信息的定时同步,具体要求如下: ◼ 分页调用接口文档中“获取设备列表”接口,将全量数据存储到 device 表中; ◼ 每 5 分钟同步一次监测设备信息; ◼ 共用“获取企业列表”的 token; ◼ 学习并使用 dao 层 insert 或 insertSelective 方法将数据插入 device 表; ◼ 学习并使用 dao 层 updateByExample 或 updateByPrimaryKeySelective 或 updateByP rimaryKey 方法更新 device 表数据; 5.4. 实现 B 系统调用 A 系统的设备监测数据,具体要求如下: ◼ 调用接口文档中“获取设备数据列表”接口接收数据,存储到 device_data 表中; ◼ 需要将所有设备的监测数据都存入表中; ◼ 共用“获取企业列表”的 token; ◼ 学习并使用 dao 层 insert 或 insertSelective 方法将数据插入 device_data 表; ◼ 学习并使用 dao 层 updateByExample 或 updateByPrimaryKeySelective 或 updateByP rimaryKey 方法更新 device_data 表数据; 5.5. 稳健性测试,具体要求如下: ◼ 编写新方法,循环调用 5.2,5.3,5.4 方法各 30 次; ◼ 能够正常完成测试; 5.6. 完善客户列表查询接口,具体要求如下: ◼ 在 CustomerController 中的 list 方法实现; ◼ 不允许修改 list 方法的入参、出参; ◼ 需要使用 dao 层 selectByExample、countByExample 方法查询数据; ◼ 具体业务在 CustomerService 实现,service 层需要自己创建; ◼ 需要根据 CustomerPage 类实现分页、搜索功能; 5.7. 编写统计查询接口,具体要求如下: ◼ 接口路径为/api/stat/test,请求方式为 GET,无参; ◼ 接口需要创建在 StatController 中,文件需要自己新增; ◼ 统计每家企业有多少种类型的设备,每种设备有多少条监测数据; ◼ 使用自定义 SQL 实现统计; ◼ 需要能够返回客户编号、客户名称、设备类型编号、设备类型名称、设备数量、设备 监测信息数; ◼ 返回数据结构不做要求,合理即可;
最新发布
03-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值