gpt4 book ai didi

python - 有没有一种pythonic方法可以尝试最多次数?

转载 作者:IT老高 更新时间:2023-10-28 21:32:59 26 4
gpt4 key购买 nike

我有一个 python 脚本正在查询共享 linux 主机上的 MySQL 服务器。出于某种原因,对 MySQL 的查询通常会返回“服务器已消失”错误:

_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')

如果您之后立即再次尝试查询,通常会成功。所以,我想知道在 python 中是否有一种合理的方式来尝试执行查询,如果它失败,再试一次,最多可以尝试固定次数。可能我希望它在完全放弃之前尝试 5 次。

这是我拥有的那种代码:

conn = MySQLdb.connect(host, user, password, database)
cursor = conn.cursor()

try:
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
# do something with the data
except MySQLdb.Error, e:
print "MySQL Error %d: %s" % (e.args[0], e.args[1])

显然我可以通过在 except 子句中再次尝试来做到这一点,但这非常难看,我觉得必须有一种体面的方法来实现这一点。

最佳答案

怎么样:

conn = MySQLdb.connect(host, user, password, database)
cursor = conn.cursor()
attempts = 0

while attempts < 3:
try:
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
# do something with the data
break
except MySQLdb.Error, e:
attempts += 1
print "MySQL Error %d: %s" % (e.args[0], e.args[1])

关于python - 有没有一种pythonic方法可以尝试最多次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/567622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com