【发布时间】:2019-04-24 16:28:17
【问题描述】:
我浏览了 Spring Statemachine 文档,但没有找到某些场景的明确答案。如果有人能澄清我的问题,我将不胜感激。
场景1:如何重试与操作失败相关的错误?假设我有以下状态 S1、S2 和 S3,当我们从 S1 转换到 S2 时,我想执行操作 A2。如果操作 A2 失败,我想每隔一段时间重试一次。使用 Spring StateMachine 可以吗?
以 AWS 状态机 Step Functions 为例。阶跃函数状态中的所有工作都是使用 Task 完成的。并且Task可以配置为重试。
transitions
.withExternal()
.source(States.S1)
.target(States.S2)
.event(Events.E1)
.action(action());
场景 2:假设状态机具有状态 S1、S2 和 S3。当前状态为 S2。如果服务器在启动时出现故障,Statemachine 的执行是否会从它停止的地方重新开始,或者我们将不得不从头再来?
场景 3:当 Guard 返回 false(可能是由于错误条件)并阻止转换时,接下来会发生什么?
【问题讨论】:
-
场景2和3与重试逻辑无关。它们是完全不同的问题。
标签: spring spring-statemachine