首页 > 解决方案 > Spring - server.connection-timeout 如何在内部工作?

问题描述

我对 server.connection-timeout 属性如何在 Spring Boot REST API 项目上工作感到困惑

我有一个 Spring Boot REST API 项目,其中我有一个删除 REST API,这基本上会对数据库表执行几个删除操作,例如这个删除 API 将删除 3 个表上的一些行,如下所示

删除 API 获取“客户 ID”作为输入并执行以下操作

  1. 删除与表 A 中客户 ID 匹配的所有记录(删除对外部数据库的调用)
  2. 删除表 B 中与客户 ID 匹配的所有记录(删除对外部数据库的调用)
  3. 删除表 C 中与客户 ID 匹配的所有记录(删除对外部数据库的调用)

我的问题是如果我将“server.connection-timeout”设置为 5 秒,这实际上意味着什么?

我有 2 两个假设

  1. 删除 Rest Api 将在 5 秒内超时,这意味着所有 3 个外部数据库调用必须在 5 秒内完成,否则 REST API 将超时
  2. 每个外部数据库调用将有 5 秒超时,在这种情况下总共 15 秒

在最坏的情况下,如果所有 3 个外部数据库调用都需要 4 秒,那么删除 API 将需要 12 秒来响应 - 这是有效的吗?

标签: springdatabasespring-boottomcatconnection-timeout

解决方案


我觉得你很困惑。server.connection-timeout – 连接器在关闭连接之前等待另一个 HTTP 请求的时间。

完成请求需要多少时间并不重要。在您的情况下,如果 server.connection-timeout 为 5,这不会影响您提到的 #1 #2 或 #3 删除。

简单来说,连接超时不适用于长时间运行的请求。相反,它适用于初始连接,当服务器等待客户端请求某些内容时。

默认值:使用连接器的容器特定默认值。使用值 -1 表示无限超时。


推荐阅读