我目前正在我的本地计算机上运行Spring Boot Admin以进行测试,并且我得到以下错误不间断。应用程序本身似乎工作正常,但我的日志正在填补这些错误。我不确定为什么......
'%y%m%d'
答案 0 :(得分:11)
我也有类似的错误。在你的application.yml中尝试这个属性
spring:
mvc:
async:
request-timeout: -1
答案 1 :(得分:1)
或者在没有弹簧靴的情况下添加
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
long timeout = 300000;// for example 5 minutes
WebMvcConfigurer.super.configureAsyncSupport(configurer);
configurer.setDefaultTimeout(timeout);
}
到实现WebMvcConfigurer的配置类
答案 2 :(得分:0)
您可以为特定订阅配置超时,而不是在应用程序级别配置超时。
@GetMapping(value = "/subscription")
public SseEmitter subscription() {
SseEmitter emitter = new SseEmitter((long) (60000 * 5));
return emitter;
}
所以在上面的摘录中,我为这个特定的连接提供了 5 分钟的时间。其余连接仍将使用服务器默认超时。
答案 3 :(得分:0)
如果使用 ComplatebleFuture<Any>
作为 @RestController
函数的返回类型并使用 Tomcat 作为后备容器。然后需要将 catalina Connector 定制器注册到 spring 上下文中,这将调整异步连接超时。因为 org.apache.catalina.connector.Connector
有自己的属性 protected long asyncTimeout = 30000;
,它将终止异步请求的处理。
@Configuration
class TomcatAsyncConfig {
@Bean
fun asyncTimeoutCustomize(): TomcatConnectorCustomizer =
TomcatConnectorCustomizer { connector -> connector.asyncTimeout = 180000 }
}
设置值
spring.mvc.async.request-timeout: -1
否则 server.tomcat.connection-timeout
不会。