You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求为Python SSH主机连通性检测代码添加3次重试逻辑

带重试逻辑的SSH主机在线检测代码

这里是修改后的代码,加入了3次重试逻辑,同时处理检测过程中可能出现的异常:

MAX_RETRIES = 3

for hostname, ipaddr in host_dict.items():
    is_up = False
    retry_count = 0
    
    while retry_count < MAX_RETRIES:
        try:
            # 尝试检测端口是否开放
            if tcp_conn.tcp_port_is_open(ipaddr, constants.TCP_PORT, constants.TCP_TIMEOUT):
                is_up = True
                break
            else:
                print(f"[{hostname}] 检测失败,正在重试 ({retry_count+1}/{MAX_RETRIES})")
                retry_count += 1
        except Exception as e:
            # 捕获检测过程中的异常,比如网络错误
            print(f"[{hostname}] 检测出现异常: {str(e)},正在重试 ({retry_count+1}/{MAX_RETRIES})")
            retry_count += 1
    
    if is_up:
        print(f"[{hostname}] Host is Up")
    else:
        print(f"[{hostname}] Host is Down")

关键改动说明:

  • 定义MAX_RETRIES常量,统一控制重试次数,方便后续调整
  • 对每个主机初始化状态标记和重试计数器
  • 使用while循环实现重试逻辑,只要未达到最大次数且未检测成功就继续尝试
  • 加入try-except块捕获异常,避免单次检测的异常直接中断整个重试流程
  • 每次重试时输出提示信息,明确当前重试进度
  • 最终根据所有重试后的结果输出主机状态,避免单次失败就判定离线

内容的提问来源于stack exchange,提问作者Saurav K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 02:34:52