【发布时间】:2019-06-19 08:32:02
【问题描述】:
我正在设置 Spring 状态机事务,我想在 Event1 完成后启动 Event2
这些是我的状态
状态 -> “初始”、“第二”、“第三”
我已将事务配置为从 FIRST_EVENT 的操作发送 SECOND_EVENT,如下所示
transitions.withExternal()
.source("INITIAL")
.target("SECOND")
.event("FIRST_EVENT")
.action(new Action<String, String>() {
@Override
public void execute(StateContext<String, String> context) {
System.out.println("FIRST_ACTION_EXECUTED");
context.getStateMachine().sendEvent("SECOND_EVENT");
}
})
.and()
.withExternal()
.source("SECOND")
.target("THIRD")
.event("SECOND_EVENT")
.action(new Action<String, String>() {
@Override
public void execute(StateContext<String, String> context) {
System.out.println("TEST SUCCESS");
}
});
这里我得到了 evenNotAccepted 异常,我知道原因是 statemachine.getState() 是 INITIAL,它不能直接将状态从 INITIAL 更改为 THIRD。
所以我的问题是,我是否可以将状态机配置为在第一个事件完成时自动触发第二个事件
【问题讨论】: