問題タブ [spring-statemachine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1152 参照

java - スプリング ステート マシン - 実行時間の長いプロセスを管理する

長時間実行されるプロセスにスプリング ステート マシンを使用するためのアドバイスが必要です。流れをデザインしたい。次の状態があるとしましょう: Start->step1->step2->step3->finish。状態間の遷移を管理するために、状態マシンにイベントを送信できるコントローラーがあります。StateMachinePersister があります。StateMachineContext から byte[] へ、およびその逆へのコンバーターがあります。私のビジネス目標にぴったりです。したがって、すべてが正常に機能するはずです。

しかし、問題がありますか?フローを変更することを決定したときに、ケースを管理する方法がわかりません。つまり、一部のプロセスが「step2」状態で持続する実稼働環境がある場合です。しかし、私は流れを変えることを余儀なくされています。フローのステップを追加または削除したいとしましょう。ステート マシンのデシリアライズ中に問題が発生すると思います。

質問は次のとおりです。スプリングステートマシンは私には適していないのでしょうか、それともそのようなケースを管理する方法がいくつかありますか?


状態、遷移などを管理したいエンティティがあります。

特定のプロセスのstateMachineContextの初期化を担当するStateMachinePersist Beanがあります。

@Bean public StateMachinePersist> persist() { return new StateMachinePersist>() {

}

ステートマシンの永続化と復元を担当する StateMachineAdapter があります

StateMachineContext のシリアル化/逆シリアル化を担当する StateMachineContextConverter があります。この操作には Kryo を使用しました。

状態の切り替えを担当するコントローラーがあります