2

UntypedPersistentActor を拡張するオブジェクトに送信された状態変更コマンドの適用が成功したことを呼び出し元に通知したいと思います。

状態の変更を永続化していない場合は、変更に影響を与えるクロージャを含む Future を返し、呼び出し元にそれを Await させます。

Akka の "persist()" 呼び出しは、私の理解が正しければ、非同期で実行されるクロージャーを渡すことを強制します。それ自体が persist() を呼び出す Future を返した場合、呼び出し元に、後のアプリケーションのために変更を正常にキューに入れたことを伝えるだけです...変更が適用されたこと、またはそのアプリケーションが成功することでさえありません。

1 つの呼び出し元に関する保証された順序付けは、変更がいつ適用されたかを知る必要性を少し満たしていると思いますが、変更が失敗した場合はどうなるでしょうか? 失敗のために呼び出し先が再起動された場合、呼び出し元のメッセージはドロップされ、状態の変更は発生せず、呼び出し元は認識されません。エラーを呼び出し元に返し、そこに表示する方がきれいなようです。

これを達成する良い方法はありますか?

4

1 に答える 1