ich die Akka.Persistence intro am Petabridge Blog gelesen haben, und ich finde diesen Teil des Codes ein wenig verwirrend:Was ist die Reihenfolge der Akka.Persistence Wiederherstellung?
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);
});
Was Sie wahrscheinlich auf die Genesung tun möchte, ist ... zuerst die letzte Momentaufnahme, dann wiederholen Sie Nachrichten aus dem Journal darüber.
Aber hier haben wir zwei Recover()
Deklarationen, und das Journal ist eins zuerst. Wenn Akka .NET Recovery ausführt, wie funktioniert die Reihenfolge dieser Recover()
Methoden tatsächlich in der Praxis?
Nein, 'Command' wird verwendet, um den Message-Handler zu registrieren. 'Recover' ist etwas anderes. – Gigi
'Command' wird verwendet, um Nachrichtenhandler zu registrieren. 'Recover' wird verwendet, um Event-Handler (Objekte, die im Ereignisjournal gespeichert sind) zu registrieren, die erneut abgespielt werden, sobald der persistente Akteur seinen Status wiederherstellt. Entschuldige, dass ich das nicht geschrieben habe, es schien in deinem Anwendungsfall selbsterklärend zu sein. – Horusiath
OK, noch, da Sie zwei Recover() - Deklarationen haben, wie entscheidet Akka .NET, was zuerst zu tun ist? – Gigi