如何解决为什么弹簧状态机使用另一个线程?
我有配置:
@Override
public void configure(StateMachineConfigurationConfigurer<RequestState,RequestEvent> config) throws Exception {
config
.withConfiguration()
.autoStartup(true)
.taskExecutor(new SyncTaskExecutor())
.listener(listener());
}
@Override
public void configure(StateMachinestateConfigurer<RequestState,RequestEvent> states)
throws Exception {
states
.withStates()
.initial(RequestState.NEW)
// Send recalculated to go to another state
.state(RequestState.STATE2,context -> context.getStateMachine().sendEvent(RequestEvent.SENT_EVENT_!))
.end(RequestState.COMPLETED)
.states(EnumSet.allOf(RequestState.class));
}
我在日志中看到状态在不同线程 o-auto-2-exec-4 与 pool-7-thread-1 中发生了变化:
2021-06-28T17:01:16.0302918Z 2021-06-28 17:01:15.927 INFO 1699
--- [o-auto-2-exec-4] r.s.mpl.deal.config.StateMachineConfig :状态从 STATE1 更改为 STATE2 2021-06-28T17:01:16.0305056Z
2021-06-28 17:01:15.940 信息 1699 --- [pool-7-thread-1]
r.s.mpl.deal.config.StateMachineConfig :状态从 STATE2 改变
到状态 3
为什么会这样?我该如何处理?我想同步改变我的状态
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。