当在循环中连续调用时,Spring Boot Resttemplate会挂起一段时间

问题描述

我正在使用spring resttemplate调用REST API服务来获取响应,但是当我对其进行密切监视时,resttemplate停留了一段时间,然后再次启动,这会减慢整个过程。我在下面添加了我的resttemplate代码以供参考,我将在类文件中自动装配此bean。

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        return builder.errorHandler(new MyApiRestTemplateErrorHandler()).build();
    }

    public String dynamodbcreateupdate(JSONObject preference,String eventType) {
        String finalResponse = "";
        String login = "";
        if (preference.has(ConstantsHelper.KEY_LOGIN)) {
            login = preference.getString(ConstantsHelper.KEY_LOGIN);
        }
        String uricreateupdate = "";
        if (eventType.equalsIgnoreCase(ConstantsHelper.STATUS_CREATE)) {
            uricreateupdate = dynamodbWrite + ConstantsHelper.URI_PARAM + dynamodbtablename
                    + ConstantsHelper.DYNAMODB_QPARAM + login + "";
        } else {
            // Remove login primary key while update
            if (preference.has(ConstantsHelper.KEY_LOGIN)) {
                preference.remove(ConstantsHelper.KEY_LOGIN);
            }
            uricreateupdate = dynamodbUpdate + ConstantsHelper.URI_PARAM + dynamodbtablename
                    + ConstantsHelper.DYNAMODB_QPARAM + login + "";
        }
        ResponseEntity<String> responsedoc = null;
        HttpHeaders headersdoc = new HttpHeaders();
        headersdoc.setContentType(MediaType.APPLICATION_JSON);
        headersdoc.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
        headersdoc.setAccessControlAllowOrigin("*");
        HttpEntity<String> entitydoc = new HttpEntity<>(preference.toString(),headersdoc);
        responsedoc = restTemplate.exchange(uricreateupdate,HttpMethod.POST,entitydoc,String.class);
        finalResponse = responsedoc.getBody().toString();
        return finalResponse;
    }

resttemplate通过循环进行连续调用如此之慢的原因是我无法跟踪它。请就此问题发表看法。

如前所述,我发布了我的整个代码,该代码使用resttemplate调用剩余的API。这是AWS dynamoDB创建/更新

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)