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

Python遇到数据库报错后如何循环重试运行代码直至错误消除?

Python数据库连接循环重试实现方案

基础实现方案

核心逻辑是捕获数据库专属异常,通过循环执行操作,异常触发时等待固定间隔后重试,直到操作成功。你可以根据需求选择无限重试,或者设置最大重试次数避免无意义等待:

import time
import pymysql
from pymysql.err import OperationalError  # 不同数据库驱动替换为对应连接异常类即可

# 自定义配置参数
MAX_RETRIES = None  # 设为None表示无限重试,设为正整数则为最大重试次数
RETRY_INTERVAL = 5  # 每次重试的等待间隔,单位秒

retry_count = 0
while True:
    try:
        # 替换为你自己的数据库连接+业务逻辑代码
        conn = pymysql.connect(
            host="你的数据库地址",
            user="数据库用户名",
            password="数据库密码",
            database="目标库名"
        )
        cursor = conn.cursor()
        cursor.execute("SELECT 1")  # 测试连通性
        # 此处写你的业务逻辑
        print("数据库操作执行成功")
        break  # 执行无异常直接跳出重试循环
    except OperationalError as e:
        retry_count += 1
        print(f"数据库连接异常,第{retry_count}次重试,错误信息:{e}")
        # 配置了最大重试次数时,达到上限直接抛出错误终止程序
        if MAX_RETRIES is not None and retry_count >= MAX_RETRIES:
            raise Exception(f"已达到最大重试次数{MAX_RETRIES},数据库连接失败")
        time.sleep(RETRY_INTERVAL)

进阶:指数退避重试实现

如果想要更合理的重试策略,避免短时间内大量请求打爆数据库,可以用指数退避的间隔规则:初始等待时间短,每次重试间隔翻倍,达到阈值后封顶:

import time
import pymysql
from pymysql.err import OperationalError

MAX_RETRIES = 10
INITIAL_RETRY_DELAY = 1  # 首次重试等待1秒
MAX_RETRY_DELAY = 30  # 最大等待30秒

retry_count = 0
current_delay = INITIAL_RETRY_DELAY
while True:
    try:
        # 替换为你自己的数据库操作代码
        conn = pymysql.connect(host="xxx", user="xxx", password="xxx", database="xxx")
        # 业务逻辑执行
        break
    except OperationalError as e:
        retry_count += 1
        print(f"连接失败,第{retry_count}次重试,等待{current_delay}秒,错误:{e}")
        if retry_count >= MAX_RETRIES:
            raise Exception(f"重试{MAX_RETRIES}次后仍无法连接数据库")
        time.sleep(current_delay)
        current_delay = min(current_delay * 2, MAX_RETRY_DELAY)

注意事项

  • 只捕获数据库连接、网络相关的特定异常,不要直接捕获所有Exception,避免把SQL语法错误、权限错误这类不需要重试的逻辑问题也纳入重试范围。
  • 如果是长期运行的后台服务,除了启动阶段的连接重试,运行过程中连接断开的场景也可以复用这套逻辑做自动重连。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:15:03