目前通过递归的方式让脚本错误重启,但是次数过多会出现递归深度过长停止的问题,不知道如何解决
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
目的是什么?
让脚本在错误时重新启动脚本
让脚本一直运行不停止
def test(): try: 脚本内容 except Exception: return test()
这样应该就不存在递归了,可以试试
可以考虑一下引入 django 和 celery 的@task(default_retry_delay= , max_retries=)
看下这个库,应该是满足你的需求:https://github.com/jd/tenacity
这样可以,解决了
except 后 pass 就能无限循环了,写多了一步,想多了
retrying 模块有这个功能,依赖 qta 框架也能很完美的实现这些要求。最好依赖框架,自己写,还得不停的调试,很麻烦,写到最后,没玩没了。