0

プロジェクトでステート マシンを維持するために 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() を再度呼び出す方法を教えてください。私はインターネットであまり助けを得ていません。

前もって感謝します。

4

1 に答える 1