枚举 ChainStatus
- 所有已实现的接口:
Serializable,Comparable<ChainStatus>,java.lang.constant.Constable
该状态机描述了一个 Chain 实例从创建到终止的完整生命周期。 状态分为三类: - 初始状态:READY - 运行中状态:RUNNING, SUSPEND, WAITING - 终态(Terminal):SUCCEEDED, FAILED, CANCELLED(不可再变更)
设计原则: - 使用行业通用术语(如 SUCCEEDED/FAILED,而非 FINISHED_NORMAL/ABNORMAL) - 明确区分人工干预(SUSPEND)与系统调度(WAITING) - 终态互斥且不可逆,便于状态判断与持久化恢复
-
嵌套类概要
从类继承的嵌套类/接口 java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
枚举常量概要
枚举常量 -
字段概要
字段 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static ChainStatusfromValue(int value) intgetValue()获取状态对应的数值标识boolean判断当前状态是否表示成功完成boolean判断当前状态是否为终态(Terminal State)static ChainStatus返回带有指定名称的该类型的枚举常量。static ChainStatus[]values()按照声明该枚举类型的常量的顺序, 返回一个包含这些常量的数组。
-
枚举常量详细资料
-
READY
初始状态:Chain 已创建,但尚未开始执行。此状态下,Chain 的内存为空,节点尚未触发。 调用
Chain#execute或Chain#doExecute后进入RUNNING。 -
RUNNING
运行中:Chain 正在执行节点逻辑(同步或异步)。只要至少一个节点仍在处理(包括等待 Phaser 同步),状态即为 RUNNING。 遇到挂起条件(如缺少参数、loop 间隔)时,会转为
SUSPEND -
SUSPEND
暂停(人工干预):Chain 因缺少外部输入而暂停,需用户主动恢复。典型场景: - 节点参数缺失且标记为 required(等待用户提交) - 人工审批节点(等待管理员操作)
恢复方式:调用
Chain.resume(Map)注入所需变量。 监听器:通过dev.tinyflow.core.chain.listener.ChainSuspendListener感知。 -
ERROR
错误(中间状态):执行中发生异常,但尚未终结(例如正在重试)。此状态表示:Chain 遇到错误,但仍在尝试恢复(如重试机制触发)。 如果重试成功,可回到 RUNNING;如果重试耗尽,则进入
FAILED。⚠️ 注意:此状态 不是终态,Chain 仍可恢复。
-
SUCCEEDED
成功完成:Chain 所有节点正常执行完毕,无错误发生。终态(Terminal State)—— 状态不可再变更。 此状态下,Chain 的执行结果(executeResult)有效。
-
FAILED
失败结束:Chain 因未处理的异常或错误条件而终止。终态(Terminal State)—— 状态不可再变更。 常见原因:节点抛出异常、重试耗尽、条件校验失败等。 错误详情可通过
ChainState.getError()获取。 -
CANCELLED
已取消:Chain 被用户或系统主动终止,非因错误。终态(Terminal State)—— 状态不可再变更。 典型场景: - 用户点击“取消”按钮 - 超时自动取消(如审批超时) - 父流程终止子流程
与
FAILED的区别:CANCELLED 是预期行为,通常不计入错误率。
-
-
字段详细资料
-
value
状态的数值标识,可用于数据库存储或网络传输
-
-
构造器详细资料
-
ChainStatus
-
-
方法详细资料
-
values
按照声明该枚举类型的常量的顺序, 返回一个包含这些常量的数组。- 返回:
- 按照声明该枚举类型的常量的顺序返回的包含这些常量的数组
-
valueOf
返回带有指定名称的该类型的枚举常量。 字符串必须与用于声明该类型的枚举常量的 标识符完全匹配。(不允许有多余 的空格字符。)- 参数:
name- 要返回的枚举常量的名称。- 返回:
- 返回带有指定名称的枚举常量
- 抛出:
IllegalArgumentException- 如果该枚举类型没有带有指定名称的常量NullPointerException- 如果参数为空值
-
isTerminal
判断当前状态是否为终态(Terminal State)终态包括:SUCCEEDED, FAILED, CANCELLED 一旦进入终态,Chain 不可再恢复或继续执行。
- 返回:
- 如果是终态,返回 true;否则返回 false
-
isSuccess
判断当前状态是否表示成功完成- 返回:
- 如果是
SUCCEEDED,返回 true;否则返回 false
-
getValue
获取状态对应的数值标识- 返回:
- 状态值
-
fromValue
-