语境:
我目前有一个 Python Flask 应用程序,当收到请求时,它会自动创建一个 Kubernetes 作业来运行一个进程。作业完成后,它将结果回传到特定端点(永不更改)。根据请求的具体情况,此过程的长度(时间)和资源需求可能会有很大差异。我为此使用 Jobs 的原因是它们能够在失败时重新启动。
问题:
即使允许最大重新启动,有时该过程也会出错。我想按照以下方式实现一些东西:
- 如果作业成功完成,则什么也不做。
- 如果在达到最大重试次数后作业失败,则运行
foo()
foo()
是一个非常简单的 Python 函数,它将发送带有导致作业未成功完成的请求参数的 HTTP 请求。它不一定是 Python 函数,但它是首选。
注意:我将作业需要执行的 python 函数中的所有内容都包装在一个广泛的错误异常中,但是,有时作业可能会由于内存不足而失败。