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

ChienHsueh · 2019年08月08日 · 最后由 萝卜 回复于 2019年10月16日 · 3195 次阅读

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

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
共收到 10 条回复 时间 点赞

目的是什么?

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 就能无限循环了,写多了一步,想多了😂

retrying 模块有这个功能,依赖 qta 框架也能很完美的实现这些要求。最好依赖框架,自己写,还得不停的调试,很麻烦,写到最后,没玩没了。

ChienHsueh 关闭了讨论 08月03日 08:43
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册