2016-08-09 66 views
2

Ich verwende einen eingebetteten Jetty-Container mit Spring Boot. Wenn meine Anfrage zu lange dauern, nicht Anlegestelle auf 503. In Anlegestelle logs ich sehe:Wie konfiguriere ich Async-Timeout in Embedded Jetty mit Spring-Boot-Anwendung

Versand nach Asynchron-Timeout

Also gehe ich davon aus der Asynchron-Zeitüberschreitung. Ich konnte jedoch nicht finden, wo dieses Timeout auf einen höheren Wert aktualisiert werden soll.

Irgendwelche Ideen?

+0

Async-Zeitlimit kann sich auf Async-Verarbeitung (auch bekannt als AsyncContext von Servlet 3.0) oder Async-I/O (von Servlet 3.1) beziehen. Um was geht es dir? –

+0

Nach dem Debugging zu urteilen, hat es sich auf den AsyncContext bezogen. – YaOg

Antwort

2

Spring MVC unterstützt eine Anwendungseigenschaft, spring.mvc.async.request-Timeout, das das Timeout in Millisekunden für die asynchrone Anforderungsbehandlung ist. Bestätigt mit spring-webmvc-4.3.2.RELEASE

2

Sie können ein JettyServerCustomizer auf Ihren Anwendungskontext hinzufügen Jetty anpassen:

@Bean 
JettyServerCustomizer jettyCustomizer() { 
    return new JettyServerCustomizer() { 
     @Override 
     public void customize(Server server) { 
      //do something 
     } 
    }; 
} 

Aber die Konfiguration Sie suchen Ich denke, ist auf der AsyncContext Ebene, und das von Spring MVC behandelt wird. Versuchen Sie, diese Konfiguration:

@Configuration 
public static class MvcConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void configureAsyncSupport(AsyncSupportConfigurer configurer) { 
     configurer.setDefaultTimeout(60000); 
    } 
}