超时
Timeout
初级通用超时(Timeout)是一次等待超过预设时限后,等待方停止继续等,并把这次等待视为失败。它让网站或 AI 工具不必一直卡在无响应的请求上;但报了超时,不代表对方一定没完成操作。
你可能会说:「用户点保存后如果接口一直没回应,别让页面无限转圈,也别让他误以为一定没保存成功。」
动手看看提交订单后页面超时
1
用户点击提交,页面把下单请求发给订单服务,同时开始计时,等它返回结果。
要点超时发生时,到底发生了什么?
- 1
先看是谁在等待谁
超时总是相对于一次等待来说的。比如浏览器等后端、后端等数据库,都可能各自设定时限。你看到前端报超时,只能确定前端没及时拿到结果,不能直接认定数据库出了问题。
- 2
超过时限不等于操作失败
假设用户点了付款,服务器已经处理成功,但回复在路上耽搁了,页面仍可能报超时。因为等待方不知道最终结果,所以对写入、付款这类操作,直接重试前最好先查询状态,或用幂等机制避免重复执行。
- 3
时限要配合后续处理
时限太短,正常请求也会被判为超时;太长,用户会一直等。我们通常按操作耗时和用户能接受的等待来定时限,并想好超时后显示什么、能否重试,以及到哪里查请求日志。
容易混淆的地方
超时说的是「等了多久还没拿到结果」,不等于 HTTP 错误状态码:有时服务器根本没来得及返回状态码。它也不是用户主动取消;取消是用户或程序明确要求停止。尤其要记住,等待方停止等待,不保证被等待方也停止了工作。
什么时候用
适合用
- 网站调用后端接口时,给等待设置时限,并在超时后提示用户稍后重试或查看结果。
- AI 工具调用模型或外部工具时,避免单次调用一直占着任务,并记录超时发生在哪一步。
- 后端访问数据库或第三方服务时,限定等待时间,让故障不至于拖住后续请求。
不适合用
- 用户主动点了「取消生成」时,重点是传递取消信号并停止相关任务,而不是等它超时。
- 你想限制用户一分钟内能发多少次请求时,用速率限制;超时管的是单次等待时间。
- 导出大型报表可能需要很久时,改成后台任务并提供进度或结果通知,而不是让页面一直等到超时。
练一练选一个答案,看看解释
用户提交订单后,页面提示请求超时。你让 AI Agent 设计后续处理,哪种方案更合理?
让 AI 帮你做复制给 AI Agent 直接用
请检查订单提交链路的超时处理:标出前端和后端分别在等什么、各自的等待时限;前端超时后提示结果暂不确定并提供状态查询。若支持重试,请保证重复请求不会创建重复订单,并记录便于排查的日志。