首页 > 解决方案 > Jersey/Jetty API Handler/Container 如果在 1 分钟内没有收到响应,则每 1 分钟重新发送一次 GET 请求

问题描述

<jersey.version>2.23.2</jersey.version>
<jetty.version>9.4.11.v20180605</jetty.version>

有一个在 Jersey 注册的 GET API 资源,我正在从 Postman 访问这个 API。如果记录数较少并且可以在 1 分钟内获取,API 工作正常。但是,如果请求的处理时间超过 1 分钟,Jetty 容器会关闭之前的请求 Socket 并通过再次向相同的 API 发送相同的 GET 请求来重试(没有发送外部请求,Jetty 正在重试它们)。

仅供参考:这里没有使用 SSL 会话。这些是非异步请求。

Q 1. 知道为什么 Jetty 会这样做吗?

另外,我尝试像这样更改 ServerFactory 中的超时,但没有改变上述行为:

((DefaultServerFactory)startupConfig.getServerFactory()).setIdleThreadTimeout(Duration.minutes(4));
startupConfig.getMetricsFactory().setFrequency(Duration.minutes(4));

Q 2. 知道需要更改哪些设置吗?

在生产中,正在使用 SSL 会话,我在那里看不到这个问题。

Q 3. SSL Session 将如何改变 Jetty 重新发送新 API 请求的行为?

标签: jerseyssl-certificatejettyembedded-jetty

解决方案


推荐阅读