私はPetabridgeのブログでAkka.Persistence introを読んだ、と私は、コードのこの部分は少し混乱を見つける:あなたはおそらく回復に何をしたいのかAkka.Persistenceリカバリの順序は何ですか?
Recover<string>(str => _msgs.Add(str)); // from the journal
Recover<SnapshotOffer>(offer => {
var messages = offer.Snapshot as List<string>;
if(messages != null) // null check
_msgs = _msgs.Concat(messages);
});
は、最初の最後のスナップショットを取る...で、ジャーナルからメッセージを再生します。
しかしここでは2つの宣言があり、ジャーナル1が最初です。 Akka .NETがリカバリを実行すると、これらの方法の順序は実際にどのように実際に再生されますか?
いいえ、「コマンド」はメッセージハンドラを登録するために使用されます。 'Recover'は何か他のものです。 – Gigi
'Command'はメッセージハンドラを登録するために使用されます。 'Recover'は、イベントハンドラ(イベントジャーナル内に格納されたオブジェクト)を登録するために使用され、永続アクタがその状態を回復すると再生されます。申し訳ありませんが、私はそれを書いていませんでした。あなたのユースケースでは自明であるようでした。 – Horusiath
あなたは2つのRecover()宣言を持っているので、Akka .NETはどのようにして最初にやるべきかを決定します。 – Gigi