第三次退避等多久

👁️ 2 人浏览 💬 0 人评论 ❤️ 添加收藏

按模型,backoff(2, 3) 交回几?(base=2,第 3 次)

贯穿本节的运维模型(判题机纯 Python、无网,这是它的确定模型,见 spine.py):服务上线后靠日志/指标/健康/告警盯住它。

恢复与重启:should_restart(策略,退出码)(always/on-failure/no)、retries_leftbackoff(base,attempt)=base*2**attempt 指数退避、give_up=次数用完。

def should_restart(policy, exit_code):
    """按策略要不要重启:always 总重启;on-failure 非 0 退出才重启;no 不重启。"""
    if policy == "always":
        return True
    if policy == "on-failure":
        return exit_code != 0
    return False


def retries_left(max_retries, tried):
    """还剩几次重试(不为负)。"""
    return max(0, max_retries - tried)


def backoff(base, attempt):
    """指数退避:第 attempt 次等待 base * 2**attempt。"""
    return base * (2 ** attempt)


def give_up(max_retries, tried):
    """重试次数用完、该放弃了吗。"""
    return tried >= max_retries

print(backoff(2, 3))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论