我的网站上有一个页面,它报告网站的运行状况并设置 HTTP 200 状态代码,一切正常。外部监控程序使用此页面来检查站点是否已启动。
当这个页面被点击时,我进行了一个非常轻量级的 DB proc 调用,以查看 DB 是否正常运行。如果这失败了,我想向监视器返回一个有意义的 HTTP 错误代码,让它知道一切都不好。
据我所知,没有 HTTP 状态显示“我依赖的第三方组件已关闭”,那么在这种情况下您会返回什么?
503服务不可用...?
我的网站上有一个页面,它报告网站的运行状况并设置 HTTP 200 状态代码,一切正常。外部监控程序使用此页面来检查站点是否已启动。
当这个页面被点击时,我进行了一个非常轻量级的 DB proc 调用,以查看 DB 是否正常运行。如果这失败了,我想向监视器返回一个有意义的 HTTP 错误代码,让它知道一切都不好。
据我所知,没有 HTTP 状态显示“我依赖的第三方组件已关闭”,那么在这种情况下您会返回什么?
503服务不可用...?
这正是 503 的含义。
503 表示服务器依赖连接其他服务,没有及时响应。
检查维基百科和那里的列表似乎暗示504将是我正在考虑的。很可能链接已过时。
所以:
504网关超时
服务器充当网关或代理,没有收到来自下游服务器的及时请求。
我怀疑500或503是合适的。503一般用于超载或维修工况,但我认为根据您的情况使用它不会不合理。
听起来您应该将监控不仅仅基于状态返回。您正在尝试传递比 HTTP 状态代码设计用于通信的更复杂的信息。
或者,只需选择一个代码,甚至编写一个代码,然后设置您的监控以将其视为“db down”。