项目有一对外开放api,外网访问经常出现超时,刚接触spring boot不久,内置的tomcat不像原先那样在server.xml中设置request超时时间。
后来查了些资料,在配置文件application.properties中加了spring.mvc.async.request-timeout=20000,意思是设置超时时间为20000ms即20s,超时问题的确不怎么发生了。
还有另外一种设置方式,如下:
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();
}
}
没有亲自实践过,写这里做个记录。