工作状态

工作在其生命周期中会经历一系列State 更改。

一次性工作状态

对于一次性 工作请求,您的工作从ENQUEUED 状态开始。

ENQUEUED 状态下,您的工作一旦满足其Constraints 和初始延迟时间要求,即可运行。从那里它将进入RUNNING 状态,然后根据工作的结果,它可能会进入SUCCEEDEDFAILED 状态,或者如果结果为retry,则可能返回到ENQUEUED 状态。在流程中的任何时间点,都可以取消工作,此时它将进入CANCELLED 状态。

图 1 说明了一次性工作的生命周期,以及可能将其带到另一个状态的事件。

图 1. 一次性工作状态图。

SUCCEEDEDFAILEDCANCELLED 都表示此工作的终端状态。如果您的工作处于任何这些状态,WorkInfo.State.isFinished() 将返回 true。

定期工作状态

成功和失败状态仅适用于一次性和链式工作。对于定期工作,只有一个终端状态,即CANCELLED。这是因为定期工作永不结束。每次运行后,它都会重新安排,而不管结果如何。图 2 描述了定期工作的简化状态图。

图 2. 定期工作状态图。

阻塞状态

还有一个我们尚未提及的最终状态,即BLOCKED。此状态适用于以一系列或工作链的形式编排的工作。工作链及其状态图在链接工作 中进行了介绍。

后续步骤

管理工作 中,您将了解有关如何管理和监控工作进度的更多信息。