【发布时间】:2023-03-19 14:36:01
【问题描述】:
这更像是一个 API 设计问题,但我很好奇其他人对这种情况的看法:
假设我有一台服务器,客户端将向我发送他们想要检索数据的项目列表,我返回 item:data 的映射。
当然首先我会检查我的缓存,查询我的数据库。让我们假设数据库查询花费的时间太长(无论出于何种原因),所以我有足够的时间终止以将部分结果(在缓存中找到)返回给客户端。
我想让客户知道两件重要的事情:
- 这是您的部分结果(如果您选择使用它们)。
- 这就是我无法解决您的其余问题的原因 (
err.ConnDeadlineExceeded)
现在我计划只返回部分结果和一个 nil 错误。原因是我的大多数客户首先检查err != nil,只有当这是真的时,他们才会真正费心查看结果。
但这感觉不对,因为我正在删除有关数据库超时的信息。有什么建议的解决方案吗?
【问题讨论】: