2017-03-14 36 views
1

到現在爲止,我已經取得了很好的狀態機器進展。我最近遇到的問題是當我想使用fork時(我使用的是UML)。分叉沒有工作,因爲它堅持了,我認爲它是因爲堅持。我堅持我的機器redis。參考下面的圖片。Spring Statemachine Forks

enter image description here

這是我的頂級機哪裏管理的命令是子機參考,頂部區域,因爲它是。

現在說我從下面的地區繼續使用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; 
} 
+0

你想介紹一下你是如何做持久性的嗎?即您基於哪個示例代碼以及您正在使用哪些類? –

+0

我已經編輯了我的問題與您的參考代碼 –

+0

嗯,我也看到了與這些深州redis奇怪。 Lemmy捅了一下。 –

回答

0

這是一個有點怪異,因爲我發現了其他一些問題具有持久性,我固定1.2.x。可能與你的問題沒有關係,但我希望你會看到類似的錯誤。無論如何,你可以檢查RedisPersistTests.java,看看你在做什麼有什麼不同。我還沒有嘗試子機器參考,但我不應該從持久性的角度出發。

+0

嗨,有沒有什麼辦法可以將參數傳遞給使用UML的動作 –

+0

你能更具體些嗎?你想要完成什麼? –