我在我的项目中使用 Apache commons SCXML 来维护状态机。一旦执行到定义调用程序的状态的转换,我们就使用调用程序执行一些活动。
当调用者从同一状态调用两次时,问题就来了。例如,从状态“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>
当从状态 A 再次触发事件“TEMP”并且没有调用 Invoker 时,问题就来了。invoke() 方法不再被调用。调用者只能调用一次吗?
请让我知道如何再次调用调用者/调用()。我在互联网上没有得到太多帮助。
提前致谢。