Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在循环中连续调用Spring boot Resttemplate时会挂起一段时间_Spring_Spring Boot_Spring Resttemplate - Fatal编程技术网

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

在循环中连续调用Spring boot Resttemplate时会挂起一段时间,spring,spring-boot,spring-resttemplate,Spring,Spring Boot,Spring Resttemplate,我使用SpringRestTemplate调用RESTAPI服务来获得响应,但当我密切监视它时,resttemplate会被卡住一段时间,然后再次启动,这会减慢整个过程。我在下面添加了我的resttemplate代码以供参考,我正在类文件中自动连接这个bean @Bean public RestTemplate restTemplate(RestTemplateBuilder builder) { return builder.errorHandler(new M

我使用SpringRestTemplate调用RESTAPI服务来获得响应,但当我密切监视它时,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;
    }
@Bean
公共RestTemplate RestTemplate(RestTemplateBuilder){
返回builder.errorHandler(新的MyApiRestTemplateErrorHandler()).build();
}
公共字符串dynamodbcreateupdate(JSONObject首选项,字符串事件类型){
字符串finalResponse=“”;
字符串login=“”;
if(preference.has(ConstantsHelper.KEY_登录)){
login=preference.getString(ConstantsHelper.KEY\u login);
}
字符串uricreateupdate=“”;
if(eventType.equalsIgnoreCase(ConstantsHelper.STATUS_CREATE)){
uricreateupdate=dynamodbWrite+ConstantsHelper.URI_PARAM+dynamodbtablename
+ConstantsHelper.dynamodbqparam+login+“”;
}否则{
//更新时删除登录主键
if(preference.has(ConstantsHelper.KEY_登录)){
删除(ConstantsHelper.KEY\u登录);
}
uricreateupdate=dynamodbUpdate+ConstantsHelper.URI_PARAM+dynamodbtablename
+ConstantsHelper.dynamodbqparam+login+“”;
}
ResponseEntity responsedoc=null;
HttpHeadersDoc=新的HttpHeaders();
headersdoc.setContentType(MediaType.APPLICATION_JSON);
headersdoc.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
headersdoc.setAccessControlAllowOrigin(“*”);
HttpEntity entitydoc=新的HttpEntity(preference.toString(),headersdoc);
responsedoc=restTemplate.exchange(uricreateupdate,HttpMethod.POST,entitydoc,String.class);
finalResponse=responsedoc.getBody().toString();
返回最终响应;
}
resttemplate通过循环的连续调用如此之慢,以至于我无法跟踪它,原因是什么。请分享对这个问题的看法


如前所述,我发布了使用resttemplate调用RESTAPI的全部代码。这是AWS dynamoDB创建/更新

请发布在循环中调用外部REST API的实际代码片段