自动化工具 Python 如何让脚本不断错误重启?

ChienHsueh · August 08, 2019 · Last by ChienHsueh replied at August 08, 2019 · 671 hits

目前通过递归的方式让脚本错误重启,但是次数过多会出现递归深度过长停止的问题,不知道如何解决

import types
import sys

sys.setrecursionlimit(5000)

def test():
try:
脚本内容
except Exception:
test()

test()

最佳回复

不就是重试吗?可以自己写,也可以用现有的库。

is_success = False
while True:
try:
test()
is_success = True
except Exception:
pass
if is_success:
break
共收到 9 条回复 时间 点赞

目的是什么?

arrow 回复

让脚本在错误时重新启动脚本

arrow 回复

让脚本一直运行不停止

def test():
try:
脚本内容
except Exception:
return test()

这样应该就不存在递归了,可以试试

可以考虑一下引入django 和 celery 的@task(default_retry_delay= , max_retries=)

看下这个库,应该是满足你的需求:https://github.com/jd/tenacity

不就是重试吗?可以自己写,也可以用现有的库。

is_success = False
while True:
try:
test()
is_success = True
except Exception:
pass
if is_success:
break
arrow 回复

这样可以,解决了😂

except 后 pass 就能无限循环了,写多了一步,想多了😂

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up