2017-12-28 11 views
-1
public void configure(StateMachineConfigurationConfigurer<States, Events> config) throws Exception { 
    config 
      .withConfiguration() 
      .machineId("test") 
      .autoStartup(false) 
      .listener(listener()); 
    } 

このコードセグメントは、ID「テスト」をセットアップするためにマシンを私にすることができますが、私はそれを開始する前に、私が独自にいくつかのパラメータに基づいて、いくつかのUUIDと私のそれぞれのマシンを識別することが可能な環境で仕事をしたい場合それが戻って来ているとき、それは同じ状態のマシンを起動するように、どのように私はそれを行うと、イベントに同じを共有することができ春ステートマシン

public void start(Request incomingRequest) { 

    WorkflowInstance instance = new WorkflowInstance(); 
    instance.setSomeMessage(incomingRequest.getMessage()); 
    instance = workflowInstanceRepository.save(instance); //This will generate an UUID which I want to use to get my machine everytime I am coming back and changing the transition 
    //ID should be taken from the config? or how as each one will have a separate data 
    StateMachine<States, Events> stateMachine = factory.getStateMachine(); 
    stateMachine.start(); 
    Message<Events> message = MessageBuilder 
      .withPayload(Events.INITIALIZING) 
      .setHeader("message", incomingRequest).build(); 
    stateMachine.sendEvent(message); 
    } 

答えて

0

あなたは代わりにあなたがそうファクトリを使用することができ、configuarationでマシンIDを設定する必要はありませんそれを設定してください:

これらのマシンは、マシンIDを設定できるだけで、毎回新しいインスタンスが返されます。それはそれはあなたがここで何をしたいのですように見えるよう

StateMachine<States, Events> stateMachine = factory.getStateMachine("test");

次のリリース1.2.8は、実行中のマシンを管理するために支援し、いくつかの追加機能を持つことになります。

関連する問題