redefine/restart Jet的job故障后如何正确处理?

How to properly redefine/restart Jet's job after fault?

The Jet 的 manual 说一项工作可以提交多次。但是,当我在出现异常后尝试重新启动它时,我会得到像 "Cannot restart failed job" 这样的异常。如果我什么都不做,我不会有任何异常,但计算不会在管道内执行。

提前致谢!

重启方法仅对运行个作业有效。一旦作业失败,目前无法重新启动它。如果失败,您需要做的是再次提交相同的作业作为新作业。对于流作业,您可能希望处理任何间歇性异常,以免它们导致作业失败。

这是 Jet 0.6.1 手册中的勘误表:

The same Job instance can be submitted for execution many times.

您实际提交执行的是一个Pipeline或一个Dag,而Job是您对一个特定执行的句柄。因此,对于相同的 PipelineDag,您可以获得许多 Job 个实例。 Job.restart() 并不意味着 "restart from scratch",而是 "stop and start" 相同的工作,从它离开的地方继续。

一旦作业失败,您可以自由提交具有相同 Pipeline 实例的另一个作业,但没有在任何失败后自动从头开始重试的机制。