如何使用 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

验证