我有一段代码会不断地作用于数据库并保持更新,但是没有出现网络中断等情况,由于某种原因,程序很容易出错。我希望程序每240秒运行一次,如果出现错误,则重复该过程最多3次,如果出现错误3次,我希望它返回到原来的周期,即每240秒,可以你帮忙吗?如果您能提供信息,以便我可以让我的程序在后台运行,我也将非常感激。
import time
class mysql_connections():
def ___init__(self):
.
.
.
def table_query(self):
.
.
.
...
if __name__ == "__main__":
delay = 10
sql = mysql_connections()
while 1:
try:
time.sleep(delay)
sql.table_query()
delay = 240
except:
delay = 10
我试过了,但不太清楚
您尝试过使用异常处理程序吗?这可以捕获错误而不会导致脚本崩溃,例如:
try:
int('hello')
except:
print('That didn't work!')
对于您的情况,您可以在脚本开头附近的某个位置添加:
error_count = 0
然后对于您的异常处理程序执行以下操作:
try:
# your code here
except:
error_count += 1
然后在接近尾声的地方:
if error_count == 3:
# change period to 240 seconds
一般的异常处理程序并不被认为是非常Pythonic的,如果你知道将抛出的具体错误,那么如果你可以缩小异常的范围,那就更好了,例如
int('hello')
将抛出一个ValueError
。所以最好写:
try:
int('hello')
except ValueError:
print('That can't be converted to an integer!')