FSM で記述されている私のアクターは、(アイドル状態で) トリガーを待機しています。それを取得すると、いくつかのデータの処理を開始し (そして Running 状態に移行し)、完了すると Idle 状態に戻ります。
FSM モデルを正しく理解していれば、この観点からは、処理開始 (Idle->Running) と処理完了 (Running->Idle) の 2 つのイベントがありました。
しかし、俳優の観点からは、1 つのメッセージしかありませんでした。
1 つの可能性は、処理自体を別のアクターに委任することです。そのため、トリガー イベントを転送して Running 状態に移行し、結果が得られたら Idle に移行します。これには、FSM 自体がリクエストにすばやく反応できるという利点があります (たとえば、現在の状態を尋ねるなど) が、設計がより複雑になります。
もう 1 つは、アクターが処理を完了したときに完了メッセージを自分自身に送信することです。これにより、Running -> Idle 遷移がトリガーされますが、私には少し奇妙に見えます。
他にどのようなオプションがありますか?
注: さまざまな遷移を伴う他の状態がいくつかあるため、FSM モデルに固執したいと思います。