码头用闲置超时30秒而不是配置的超时60秒关闭连接

问题描述

我将Spring Boot用于Rest API服务。 读取数据时,我们会看到许多空闲超时问题。它报告“ java.util.concurrent.TimeoutException:空闲超时已过期:30000/30000 ms”以下是我为码头线程池配置的内容。有谁知道为什么失败超时是30秒而不是60秒?

int threadPoolIdleTimeout = 60000; ThreadPool threadpool = new QueuedThreadPool(maxThreads,maxThreads,threadPoolIdleTimeout, 新的ArrayBlockingQueue(threadPoolQueueSize));

解决方法

无关。

这是线程空闲超时,用于减少线程池中的空闲线程数。

连接空闲超时是不同的配置。

检查ServerConnector是否正常服务器连接。

如果使用的是Servlet异步处理或Servlet异步I / O,请检查AsyncContext空闲超时。

检查WebSocket会话是否在执行WebSocket请求。

如果您担心数据库连接空闲超时,请检查数据库数据源配置。

检查HTTP2会话配置以处理HTTP / 2连接器上的虚拟连接。

还有更多,等等...

有很多空闲超时,具体针对您正在处理的情况,请注意这些超时。