我有一段代码会不断地对数据库进行操作并保持更新,但没有网络中断等。由于某些原因,程序很容易出错。我希望程序每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
我试过了,但不太清楚
请参阅本文,了解如何在Stack Overflow上提出一个好问题,并提供一个可重复性最低的示例:
https://stackoverflow.com/help/how-to-ask
这将有助于提供答案,因为它可以让人们测试出确切的问题,并为您提供更多量身定制的问题。
话虽如此,您是否尝试过使用异常处理程序?这可以在脚本不崩溃的情况下捕获错误,例如:
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
一般的异常处理程序不太像Python,如果您知道将抛出的特定错误(例如int('hello')
将抛出ValueError
(,则最好可以缩小异常范围。所以最好写下:
try:
int('hello')
except ValueError:
print('That can't be converted to an integer!')
希望这能有所帮助。