两项检查一坏时的状态码
按模型,一项过一项坏时 http_code(checks) 交回几?
贯穿本节的运维模型(判题机纯 Python、无网,这是它的确定模型,见 spine.py):服务上线后靠日志/指标/健康/告警盯住它。
健康检查:一批依赖检查 {"name":..,"ok":bool};all_ok 全过否、status=healthy/unhealthy、http_code=200/503、failed=没过的名字。
def all_ok(checks):
"""所有依赖检查都通过吗(checks 每项 {"name":..,"ok":bool})。"""
return all(c["ok"] for c in checks)
def status(checks):
"""健康端点该报的状态:全过 healthy,否则 unhealthy。"""
return "healthy" if all_ok(checks) else "unhealthy"
def http_code(checks):
"""健康端点该回的状态码:全过 200,否则 503。"""
return 200 if all_ok(checks) else 503
def failed(checks):
"""哪几项检查没过(名字,排序)。"""
return sorted(c["name"] for c in checks if not c["ok"])
print(http_code([{"name": "db", "ok": True}, {"name": "cache", "ok": False}]))
全部评论