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