我有一个由Java配置支持的Spring MVC应用程序,我想为涉及Callable<>的所有异步调用设置默认超时。接口。例如,考虑这样的控制器方法:
@RequestMapping
public Callable<String> doSmth() {
return () -> {
return "myview";
}
}
我希望有一个控制器(每个应用程序)控制器在请求超时之前有多少时间来完成它的工作。
我想有一个 Java 配置的示例,而不是 xml
答案 0 :(得分:5)
您可以通过扩展WebMvcConfigurerAdapter
并覆盖configureAsyncSupport
:
@Configuration
//other annotations if needed
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setDefaultTimeout(100000); //in milliseconds
super.configureAsyncSupport(configurer);
}
答案 1 :(得分:0)
您还可以通过在Tomcat的conf / server.xml配置文件中设置“asyncTimeout”属性来覆盖默认超时10秒:
<Connector connectionTimeout="20000" asyncTimeout="30000" maxThreads="1000"
port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
redirectPort="8443" />
参考:https://tomcat.apache.org/tomcat-7.0-doc/config/http.html