定义一个状态,超时时间和重试的次数限制(此为样例代码,你可以把他们包装到函数或类中)
循环判断_conn_status状态且判断最大重试次数
在循环中try except 连接如果DB连接成功则_conn_status为False,异常except则_conn_retries_count次数加1,且continue操作
def reConndb(): _conn_status = True _max_retries_count = 10 #设置最大重试次数 _conn_retries_count = 0 #初始重试次数 _conn_timeout = 3 # 连接超时时间为3秒 while _conn_staus and _conn_num <= _conn_retries_count: try: conn = db.connect(host=xxx, user=xxx, passwd=xxx, connect_timeout=_conn_timeout) _status = False # 如果conn成功则_status为设置为False则退出循环,返回db连接对象 return conn except: _conn_num += 1 print _conn_num print ‘connect db is error!!‘ time.sleep(3) #此为测试看效果 continue
以上为带重试功能和连接超时功能的DB连接
原文地址:http://smly1989.blog.51cto.com/1519819/1982404