내가 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);
});
, 그 다음에 저널의 메시지를 재생하십시오.
그러나 여기에는 두 개의 Recover()
선언이 있으며 저널 중 하나가 첫 번째입니다. Akka .NET이 복구를 실행하면 이러한 Recover()
메서드의 순서가 실제로 어떻게 실제로 실행됩니까?
아니요, 'Command'는 메시지 처리기를 등록하는 데 사용됩니다. '복구 '는 다른 것입니다. – Gigi
'Command'는 메시지 핸들러를 등록하는 데 사용됩니다. 'Recover'는 이벤트 처리기 (이벤트 저널에 저장된 오브젝트)를 등록하는 데 사용되며, 지속성있는 액터가 상태를 복구하면 다시 재생됩니다. 죄송합니다. 필자는이를 쓰지 않았으며 유스 케이스에서는 자명하다. – Horusiath
그래도 여전히 Recover() 선언이 두 개인 경우 Akka .NET은 먼저 어떤 작업을 수행할지 결정합니다. – Gigi