Spring Statemachine - 隐式状态转换

问题描述 投票:0回答:1

是否有可能构建一个状态机,只有下一个状态本身会触发一个事件来调用下一个状态转换?像隐式转换一样。我不想在外部定义它们我想创建类似级联的东西。

spring state-machine spring-statemachine
1个回答
0
投票

如果我正确地理解了这一点,你需要对状态转换产生“多米诺”效果(级联转换 - 以便当前状态触发转换到下一个状态,从而触发转换到下一个状态,依此类推)。

这与SM行动直接相关。每个SM Action都可以访问StateContext<State, Event>,您可以从中检索状态机实例并触发下一个事件:

//Domino Effect
void actionForS1(StateContext<State, Event> context) {
  //do actions
  Message transitionToS2 = MessageBuilder.withPayload(...).build();
  context.getStateMachine().sendEvent(transitionToS2);
}

void actionForS2(StateContext<State, Event> context) {
  //do actions
  Message transitionToS3 = MessageBuilder.withPayload(...).build();
  context.getStateMachine().sendEvent(transitionToS3);
}
© www.soinside.com 2019 - 2024. All rights reserved.