Summary of Methods of Setting Interface Timeout in SpringBoot

  • 2021-11-14 05:35:46
  • OfStack

1. Configuration file

application. properties, which means setting the timeout time to 20000ms or 20s,


spring.mvc.async.request-timeout=20000

2. config configuration class


public class WebMvcConfig extends WebMvcConfigurerAdapter {
    @Override
    public void configureAsyncSupport(final AsyncSupportConfigurer configurer) {
        configurer.setDefaultTimeout(20000);
        configurer.registerCallableInterceptors(timeoutInterceptor());
    }
    @Bean
    public TimeoutCallableProcessingInterceptor timeoutInterceptor() {
        return new TimeoutCallableProcessingInterceptor();
    }
}

3. RestTemplate timeout


import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
 
@Slf4j
@Configuration
public class RestTemplateConfig {
 
    @Bean
    @ConfigurationProperties(prefix = "rest.connection")
    public HttpComponentsClientHttpRequestFactory httpRequestFactory() {
        return new HttpComponentsClientHttpRequestFactory();
    }
 
    @Bean
    public RestTemplate customRestTemplate(){
        return new RestTemplate(httpRequestFactory());
    }
}

You can also:


@Beanpublic SimpleClientHttpRequestFactory httpRequestFactory() {         
    SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();  
    requestFactory.setConnectTimeout(1000);  
    requestFactory.setReadTimeout(1000);               
    return requestFactory;
}
     
@Beanpublic RestTemplate customRestTemplate(){
    return new RestTemplate(httpRequestFactory());
}

application.properties:


#restTemplate Configure #  When the connection is not shared, waiting for the connection timed out. 
rest.connection.connectionRequestTimeout=30000#   Timeout for establishing connection 
rest.connection.connectTimeout=30000#  After the connection is established successfully,   Read from server timeout 
rest.connection.readTimeout=30000

Or


#restTemplate Configure 
rest.connection.connection-request-timeout=30000
rest.connection.connect-timeout=30000
rest.connection.read-timeout=30000

Recommended articles:

https://www.ofstack.com/article/167638.htm

From:

https://blog.csdn.net/qq_35860138/article/details/88941558

https://blog.csdn.net/weixin_34114823/article/details/86015073


Related articles: