当请求操作导致数据库死锁时,服务器返回503("服务不可用")
是否合适?
以下是我的推理:
- 一开始我尝试避免数据库死锁,但我遇到了https://dev59.com/h3VD5IYBdhLWcg3wBm5h#112256
- 接下来,我尝试在服务器端重复请求,但我遇到了Java Servlets: How to repeat an HTTP request?。技术上讲,我可以缓冲请求实体,但可扩展性会受到影响,并且客户端更有可能看到
503 Service Unavailable
。
鉴于:
- 要求客户端重复操作更容易。
- 他们无论如何都需要处理
503 Service Unavailable
。 - 数据库死锁相当罕见。
我倾向于这个解决方案。你认为呢?
更新: 我认为如果您希望的话,返回503("服务不可用")
仍然可以接受,但我不再认为这是技术上必需的。请参见https://stackoverflow.com/a/17960047/14731。
HTTP 504
吗? - Gili