如何使用 spring 引导应用程序在嵌入式码头中配置异步超时
How to configure async timeout in embedded jetty using spring boot application
我正在使用使用 spring 引导的嵌入式码头容器。如果我的请求花费的时间太长,Jetty 会在 503 上失败。在 Jetty 日志中我看到:
异步超时后调度
所以,我假设异步超时。但是,我找不到在哪里将此超时更新为更高的值。
有什么想法吗?
您可以将 JettyServerCustomizer
添加到您的应用程序上下文以自定义 Jetty:
@Bean
JettyServerCustomizer jettyCustomizer() {
return new JettyServerCustomizer() {
@Override
public void customize(Server server) {
//do something
}
};
}
但我认为您正在寻找的配置处于 AsyncContext
级别,并且由 Spring MVC 处理。试试这个配置:
@Configuration
public static class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setDefaultTimeout(60000);
}
}
Springmvc支持一个应用程序属性,spring.mvc.async.request-timeout,就是异步请求处理的超时时间,以毫秒为单位。
通过 spring-webmvc-4.3.2.RELEASE
验证
我正在使用使用 spring 引导的嵌入式码头容器。如果我的请求花费的时间太长,Jetty 会在 503 上失败。在 Jetty 日志中我看到:
异步超时后调度
所以,我假设异步超时。但是,我找不到在哪里将此超时更新为更高的值。
有什么想法吗?
您可以将 JettyServerCustomizer
添加到您的应用程序上下文以自定义 Jetty:
@Bean
JettyServerCustomizer jettyCustomizer() {
return new JettyServerCustomizer() {
@Override
public void customize(Server server) {
//do something
}
};
}
但我认为您正在寻找的配置处于 AsyncContext
级别,并且由 Spring MVC 处理。试试这个配置:
@Configuration
public static class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setDefaultTimeout(60000);
}
}
Springmvc支持一个应用程序属性,spring.mvc.async.request-timeout,就是异步请求处理的超时时间,以毫秒为单位。 通过 spring-webmvc-4.3.2.RELEASE
验证