到現在爲止,我已經取得了很好的狀態機器進展。我最近遇到的問題是當我想使用fork時(我使用的是UML)。分叉沒有工作,因爲它堅持了,我認爲它是因爲堅持。我堅持我的機器redis。參考下面的圖片。Spring Statemachine Forks
這是我的頂級機哪裏管理的命令是子機參考,頂部區域,因爲它是。
現在說我從下面的地區繼續使用redis中的某個狀態,接下來會發生一個ONLINE事件,那麼機器不接受事件,顯然是因爲我已經要求機器使用給定的redis恢復狀態鍵。 bur我希望兩個區域都被保持,以便根據事件選擇其中一個區域。 有什麼辦法可以做到這一點?
下面是我一直存在如何ñ恢復
private void feedMachine(StateMachine<String, String> stateMachine, String user, GenericMessage<String> event)
throws Exception {
stateMachine.sendEvent(event);
System.out.println("persist machine --- > state :" + stateMachine.getState().toString());
redisStateMachinePersister.persist(stateMachine, "testprefixSw:" + user);
}
private StateMachine<String, String> resetStateMachineFromStore(StateMachine<String, String> stateMachine,
String user) throws Exception {
StateMachine<String, String> machine = redisStateMachinePersister.restore(stateMachine, "testprefixSw:" + user);
System.out.println("restore machine --- > state :" + machine.getState().toString());
return machine;
}
你想介紹一下你是如何做持久性的嗎?即您基於哪個示例代碼以及您正在使用哪些類? –
我已經編輯了我的問題與您的參考代碼 –
嗯,我也看到了與這些深州redis奇怪。 Lemmy捅了一下。 –