プロジェクトでステート マシンを維持するために Apache commons SCXML を使用しました。Invoker が定義されている状態への遷移が実行されるとすぐに、いくつかのアクティビティを実行するために Invoker を使用しました。
インボーカーが同じ状態から 2 回呼び出されると、問題が発生します。たとえば、状態「A」からイベント「TEMP」が発生し、状態「B」に移行します。そして状態「B」になるとすぐにインボーカーが呼び出され、インボーカークラスのコールバックメソッドinvoke()が呼び出されています。
<state id="A">
<transition event="TEMP" target="B"></transition>
</state>
<state id="B">
<invoke src="INVOKER" targettype="invoker-req">
<transition event="FAIL" target="A"></transition>
<transition event="SUCC" target="C"></transition>
</invoke>
</state>
イベント「TEMP」が状態 A から再び発生し、その後 Invoker が呼び出されない場合に問題が発生します。invoke() メソッドが再度呼び出されることはありません。インボーカーは 1 回だけ呼び出すことができますか?
インボーカー/invoke() を再度呼び出す方法を教えてください。私はインターネットであまり助けを得ていません。
前もって感謝します。